第1个回答 2015-10-02
详细的代码如下:
.支持库 spec
.支持库 dp1
.子程序 _按钮1_被单击
调试输出 (加密QQ (“07587311299.”, “!FM2”, “\x00\x00\x00\x00\x27\x4f\x45\xa6”))
.子程序 加密QQ, 文本型
.参数 密码, 文本型
.参数 验证码, 文本型
.参数 验证码位数, 文本型
.局部变量 i, 整数型
.局部变量 ret, 字节集
.局部变量 Text, 字节集
.局部变量 l, 整数型
.局部变量 密码A, 字节集
.局部变量 密码B, 文本型
.局部变量 密码C, 文本型
密码 = 取数据摘要 (到字节集 (密码))
ret = 取空白字节集 (取整 (取文本长度 (密码) ÷ 2))
l = 1
Text = 到字节集 (密码)
.变量循环首 (1, 取字节集长度 (Text), 2, i)
ret [l] = 十六到十QQ (字符 (Text [i]) + 字符 (Text [i + 1]))
l = l + 1
.变量循环尾 ()
密码A = 到字节集 (ret)
密码B = 子文本替换 (验证码位数, “\x”, , , , 真)
ret = 取空白字节集 (取整 (取文本长度 (密码B) ÷ 2))
l = 1
Text = 到字节集 (密码B)
.变量循环首 (1, 取字节集长度 (Text), 2, i)
ret [l] = 十六到十QQ (字符 (Text [i]) + 字符 (Text [i + 1]))
l = l + 1
.变量循环尾 ()
密码C = 到大写 (取数据摘要 (到字节集 (到大写 (取数据摘要 (密码A + 到字节集 (ret)) + 验证码))))
返回 (密码C)
.子程序 十六到十QQ, 整数型
.参数 十六进制文本, 文本型, , 待转换的十六进制文本
.参数 返回结果, 文本型, 参考 可空, 返回文本结果(如十进制数超出整数范围,可通过返回结果获得十进制文本)
.局部变量 中间文本, 文本型
.局部变量 结果, 长整数型
.局部变量 容器, 整数型
返回结果 = “”
.变量循环首 (1, 取文本长度 (十六进制文本), 1, 容器)
中间文本 = 取文本中间 (十六进制文本, 容器, 1)
结果 = (寻找文本 (“0123456789ABCDEF”, 中间文本, , 真) - 1) × 求次方 (16, 取文本长度 (十六进制文本) - 容器) + 结果
.变量循环尾 ()
.如果真 (是否为空 (返回结果) = 假)
返回结果 = 到文本 (结果)
.如果真结束
返回 (结果)