|
Base64版本:https://www.fedcba9876543210.com/thread-1037-1-1.html
- .版本 2
- .程序集 Base62编码与解码
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 Base62, 文本型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- Base62 = Base62算法编码 (到字节集 (“测试字符串”))
- 输出调试文本 (Base62)
- 输出调试文本 (到文本 (Base62算法解码 (Base62)))
- .子程序 Base62算法编码, 文本型, 公开, Base62 编码器,将字节集数据转换成62进制文本(区分大小写),实际上是个256与62进制转换器。
- .参数 欲操作的数据, 字节集, , 字节集数据若为{0}开头在转换的时候将会丢失,可在开头加上其他值或解密后填充到特定长度。
- .局部变量 计数, 整数型
- .局部变量 长度, 整数型
- .局部变量 运算值, 整数型
- .局部变量 返回值, 文本型
- .局部变量 数组, 字节型, , "0"
- 长度 = 取字节集长度 (欲操作的数据)
- 重定义数组 (数组, 假, 长度)
- .计次循环首 (长度, 计数)
- 数组 [计数] = 欲操作的数据 [计数]
- .计次循环尾 ()
- .判断循环首 (长度 ≥ 1)
- 运算值 = 0
- .计次循环首 (长度, 计数)
- 运算值 = 运算值 × 256 + 数组 [计数]
- 数组 [计数] = 运算值 ÷ 62
- 运算值 = 运算值 % 62
- .计次循环尾 ()
- 返回值 = 字符 (数值转换B (运算值)) + 返回值
- 运算值 = 1
- .判断循环首 (运算值 ≤ 长度 且 数组 [运算值] = 0)
- 运算值 = 运算值 + 1
- .判断循环尾 ()
- 删除成员 (数组, 1, 运算值 - 1)
- 长度 = 取数组成员数 (数组)
- .判断循环尾 ()
- 返回 (返回值)
- .子程序 Base62算法解码, 字节集, 公开, Base62 解码器,将62进制文本(区分大小写),还原成字节集数据。
- .参数 欲解密的文本, 文本型, , 文本由 Base62算法编码() 编码获得。
- .局部变量 计数, 整数型
- .局部变量 长度, 整数型
- .局部变量 运算值, 整数型
- .局部变量 返回值, 字节集
- .局部变量 数组, 字节型, , "0"
- 长度 = 取文本长度 (欲解密的文本)
- 重定义数组 (数组, 假, 长度)
- .计次循环首 (长度, 计数)
- 数组 [计数] = 数值转换A (取代码 (欲解密的文本, 计数))
- .计次循环尾 ()
- 计数 = 0
- .判断循环首 (长度 ≥ 1)
- 运算值 = 0
- .计次循环首 (长度, 计数)
- 运算值 = 运算值 × 62 + 数组 [计数]
- 数组 [计数] = 运算值 ÷ 256
- 运算值 = 运算值 % 256
- .计次循环尾 ()
- 返回值 = 到字节集 (到字节 (运算值)) + 返回值
- 运算值 = 1
- .判断循环首 (运算值 ≤ 长度 且 数组 [运算值] = 0)
- 运算值 = 运算值 + 1
- .判断循环尾 ()
- 删除成员 (数组, 1, 运算值 - 1)
- 长度 = 取数组成员数 (数组)
- .判断循环尾 ()
- 返回 (返回值)
- .子程序 数值转换A, 字节型
- .参数 值, 字节型
- .判断开始 (值 ≤ 58)
- 返回 (值 - 48)
- .判断 (值 ≤ 90)
- 返回 (值 - 65 + 10)
- .默认
- 返回 (值 - 97 + 36)
- .判断结束
- .子程序 数值转换B, 字节型
- .参数 值, 字节型
- .判断开始 (值 ≤ 9)
- 返回 (值 + 48)
- .判断 (值 ≤ 35)
- 返回 (值 + 65 - 10)
- .默认
- 返回 (值 + 97 - 36)
- .判断结束
复制代码
|
|