是否可以参考下面这种写法(可行有bug会修改原文),可以定义码表变量,变形的目的就是不想公开自己的码表
.子程序 Base64编码_变形, 字节集, 公开, 会修改原文,注意保存原文
.参数 原文, 字节集, , 会修改原文,注意保存原文
.局部变量 原文指针, 整数型
.局部变量 结果指针, 整数型
.局部变量 码表指针, 整数型
.局部变量 I指针, 整数型
.局部变量 J指针, 整数型
.局部变量 码表, 字节集
.局部变量 结果, 字节集
.局部变量 原文长度, 整数型
.局部变量 倍数, 整数型
.局部变量 补码, 整数型
.局部变量 余数, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 ll, 整数型
.如果真 (取字节集长度 (原文) ≤ 0)
返回 ({ })
.如果真结束
' 码表: “ABCD.............”
码表 = { 65, 67,......... }
码表指针 = 取变量数据地址_字节集 (码表)
原文长度 = 取字节集长度 (原文)
倍数 = 到整数 (原文长度 \ 3) ' 用来得出补码数。
余数 = 到整数 (原文长度 % 3)
补码 = 0
.如果真 (余数 ≠ 0)
倍数 = 倍数 + 1
补码 = 3 - 余数
原文 = 原文 + 取空白字节集 (补码)
.如果真结束
原文指针 = 取变量数据地址_字节集 (原文)
ll = 原文长度 + 补码
结果 = 取空白字节集 (倍数 × 4)
结果指针 = 取变量数据地址_字节集 (结果)
i = 0
I指针 = 取变量数据地址_整数型 (i)
j = 0
J指针 = 取变量数据地址_整数型 (j)
.变量循环首 (1, ll - 2, 3, i)
置入代码 ({ 139, 69, 228, 139, 77, 208, 139, 9, 138, 92, 8, 255, 139, 77, 248, 139, 69, 216, 83, 139, 93, 200, 139, 27, 3, 195, 91, 80, 51, 192, 138, 195, 192, 232, 2, 3, 193, 139, 216, 88, 138, 11, 136, 8, 139, 69, 228, 139, 77, 208, 139, 9, 51, 219, 138, 92, 8, 255, 138, 60, 8, 139, 77, 248, 139, 69, 216, 83, 139, 93, 200, 139, 27, 3, 195, 91, 80, 51, 192, 138, 195, 192, 224, 4, 36, 48, 138, 231, 192, 236, 4, 2, 196, 50, 228, 3, 193, 139, 216, 88, 138, 11, 136, 72, 1, 139, 69, 228, 139, 77, 208, 139, 9, 51, 219, 138, 28, 8, 138, 124, 8, 1, 139, 77, 248, 139, 69, 216, 83, 139, 93, 200, 139, 27, 3, 195, 91, 80, 51, 192, 138, 195, 192, 224, 2, 36, 60, 138, 231, 192, 236, 6, 2, 196, 50, 228, 3, 193, 139, 216, 88, 138, 11, 136, 72, 2, 139, 69, 228, 139, 77, 208, 139, 9, 51, 219, 138, 92, 8, 1, 139, 77, 248, 139, 69, 216, 83, 139, 93, 200, 139, 27, 3, 195, 91, 80, 51, 192, 138, 195, 36, 63, 3, 193, 139, 216, 88, 138, 11, 136, 72, 3, 139, 93, 200, 139, 11, 139, 193, 131, 192, 4, 137, 3 })
.变量循环尾 ()
.如果真 (补码 > 0)
原文 = 取字节集左边 (原文, 原文长度 - 补码)
.如果真结束
结果 = 取字节集左边 (结果, 倍数 × 4 - 补码) + 取重复字节集 (补码, { 61 })
返回 (结果)
|