|
| 编码_BASE64解码 | 字节集 | |
|
| 编码文本 | 文本型 | | | |
去除右边空白字节集 | 逻辑型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 |
| Alphabets | 文本型 | | |
| aryPhase | 字节集 | | |
| aryBin | 字节集 | | |
| dwSize | 整数型 | | |
| dwMult | 整数型 | | |
| nMaxCount | 整数型 | | |
| aryData | 字节集 | | |
| aryTemp | 字节型 | | 4 |
| i | 整数型 | | |
| n | 整数型 | | |
| dwMod | 整数型 | | |
aryBin =
到字节集 (编码文本
)aryBin =
子字节集替换 (aryBin,
{ 32
}, , ,
) aryBin =
子字节集替换 (aryBin,
{ 13, 10
}, , ,
) dwSize =
取字节集长度 (aryBin
)
如果真 (dwSize = 0
)
返回 ({ })Alphabets = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”aryPhase =
取空白字节集 (256
)
计次循环首 (64, i
)
aryPhase
[取代码 (Alphabets, i
)] = i - 1
计次循环尾 ()dwMult = dwSize \ 4
dwMod = dwSize % 4
如果真 (dwMod ≠ 0
)
dwMult = dwMult + 1
判断 (倒找字节集 (aryBin,
{ 61, 61
},
) ≠ -1
)
nMaxCount = 2
判断 (倒找字节集 (aryBin,
{ 61
},
) ≠ -1
)
nMaxCount = 1

aryData = 取空白字节集 (dwMult × 3)n = 1
变量循环首 (1, dwSize - dwMod, 4, i
)
aryTemp
[1
] = aryPhase
[aryBin
[i
]]

aryTemp
[2
] = aryPhase
[aryBin
[i + 1
]]

aryTemp
[3
] = aryPhase
[aryBin
[i + 2
]]

aryTemp
[4
] = aryPhase
[aryBin
[i + 3
]]

aryData
[n
] =
左移 (aryTemp
[1
], 2
) +
位与 (右移 (aryTemp
[2
], 4
), 3
)
aryData
[n + 1
] =
位与 (左移 (aryTemp
[2
], 4
), 240
) +
位与 (右移 (aryTemp
[3
], 2
), 15
)
aryData
[n + 2
] =
位与 (左移 (aryTemp
[3
], 6
), 192
) + aryTemp
[4
]
n = n + 3
变量循环尾 ()
如果真 (dwMod > 0
)
连续赋值 (0, aryTemp
[1
], aryTemp
[2
], aryTemp
[3
], aryTemp
[4
])
判断 (dwMod = 1
)

aryTemp
[1
] = aryPhase
[aryBin
[i
]]

判断 (dwMod = 2
)

aryTemp
[1
] = aryPhase
[aryBin
[i
]]


aryTemp
[2
] = aryPhase
[aryBin
[i + 1
]]


aryTemp
[1
] = aryPhase
[aryBin
[i
]]


aryTemp
[2
] = aryPhase
[aryBin
[i + 1
]]


aryTemp
[3
] = aryPhase
[aryBin
[i + 2
]]



aryData
[n
] =
左移 (aryTemp
[1
], 2
) +
位与 (右移 (aryTemp
[2
], 4
), 3
)
aryData
[n + 1
] =
位与 (左移 (aryTemp
[2
], 4
), 240
) +
位与 (右移 (aryTemp
[3
], 2
), 15
)
aryData
[n + 2
] =
位与 (左移 (aryTemp
[3
], 6
), 192
) + aryTemp
[4
]assignZero (aryData, dwMult × 3 - nMaxCount, 真)
如果真 (去除右边空白字节集
)
aryData =
去除右边空字节集 (aryData
)返回 (aryData)