设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 4342|回复: 2
收起左侧

易语言纯核心库实现Base62编码与解码 - 不调用任何DLL实现

[复制链接]
发表于 2018-8-31 20:05:26 | 显示全部楼层 |阅读模式
Base64版本:https://www.fedcba9876543210.com/thread-1037-1-1.html


  1. .版本 2

  2. .程序集 Base62编码与解码

  3. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  4. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  5. 返回 (0)  ' 可以根据您的需要返回任意数值

  6. .子程序 _临时子程序
  7. .局部变量 Base62, 文本型

  8. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。

  9. Base62 = Base62算法编码 (到字节集 (“测试字符串”))

  10. 输出调试文本 (Base62)
  11. 输出调试文本 (到文本 (Base62算法解码 (Base62)))


  12. .子程序 Base62算法编码, 文本型, 公开, Base62 编码器,将字节集数据转换成62进制文本(区分大小写),实际上是个256与62进制转换器。
  13. .参数 欲操作的数据, 字节集, , 字节集数据若为{0}开头在转换的时候将会丢失,可在开头加上其他值或解密后填充到特定长度。
  14. .局部变量 计数, 整数型
  15. .局部变量 长度, 整数型
  16. .局部变量 运算值, 整数型
  17. .局部变量 返回值, 文本型
  18. .局部变量 数组, 字节型, , "0"

  19. 长度 = 取字节集长度 (欲操作的数据)
  20. 重定义数组 (数组, 假, 长度)
  21. .计次循环首 (长度, 计数)
  22.     数组 [计数] = 欲操作的数据 [计数]
  23. .计次循环尾 ()
  24. .判断循环首 (长度 ≥ 1)
  25.     运算值 = 0
  26.     .计次循环首 (长度, 计数)
  27.         运算值 = 运算值 × 256 + 数组 [计数]
  28.         数组 [计数] = 运算值 ÷ 62
  29.         运算值 = 运算值 % 62
  30.     .计次循环尾 ()
  31.     返回值 = 字符 (数值转换B (运算值)) + 返回值
  32.     运算值 = 1
  33.     .判断循环首 (运算值 ≤ 长度 且 数组 [运算值] = 0)
  34.         运算值 = 运算值 + 1
  35.     .判断循环尾 ()
  36.     删除成员 (数组, 1, 运算值 - 1)
  37.     长度 = 取数组成员数 (数组)
  38. .判断循环尾 ()
  39. 返回 (返回值)

  40. .子程序 Base62算法解码, 字节集, 公开, Base62 解码器,将62进制文本(区分大小写),还原成字节集数据。
  41. .参数 欲解密的文本, 文本型, , 文本由 Base62算法编码() 编码获得。
  42. .局部变量 计数, 整数型
  43. .局部变量 长度, 整数型
  44. .局部变量 运算值, 整数型
  45. .局部变量 返回值, 字节集
  46. .局部变量 数组, 字节型, , "0"

  47. 长度 = 取文本长度 (欲解密的文本)
  48. 重定义数组 (数组, 假, 长度)
  49. .计次循环首 (长度, 计数)
  50.     数组 [计数] = 数值转换A (取代码 (欲解密的文本, 计数))
  51. .计次循环尾 ()
  52. 计数 = 0
  53. .判断循环首 (长度 ≥ 1)
  54.     运算值 = 0
  55.     .计次循环首 (长度, 计数)
  56.         运算值 = 运算值 × 62 + 数组 [计数]
  57.         数组 [计数] = 运算值 ÷ 256
  58.         运算值 = 运算值 % 256
  59.     .计次循环尾 ()
  60.     返回值 = 到字节集 (到字节 (运算值)) + 返回值
  61.     运算值 = 1
  62.     .判断循环首 (运算值 ≤ 长度 且 数组 [运算值] = 0)
  63.         运算值 = 运算值 + 1
  64.     .判断循环尾 ()
  65.     删除成员 (数组, 1, 运算值 - 1)
  66.     长度 = 取数组成员数 (数组)
  67. .判断循环尾 ()
  68. 返回 (返回值)


  69. .子程序 数值转换A, 字节型
  70. .参数 值, 字节型

  71. .判断开始 (值 ≤ 58)
  72.     返回 (值 - 48)
  73. .判断 (值 ≤ 90)
  74.     返回 (值 - 65 + 10)
  75. .默认
  76.     返回 (值 - 97 + 36)
  77. .判断结束


  78. .子程序 数值转换B, 字节型
  79. .参数 值, 字节型

  80. .判断开始 (值 ≤ 9)
  81.     返回 (值 + 48)
  82. .判断 (值 ≤ 35)
  83.     返回 (值 + 65 - 10)
  84. .默认
  85.     返回 (值 + 97 - 36)
  86. .判断结束

复制代码


相关帖子

发表于 2018-8-31 21:44:21 | 显示全部楼层
看不懂,路过顶。
发表于 2018-9-1 15:50:13 | 显示全部楼层
半年水了500多主题...
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-3-29 22:03 , Processed in 0.402023 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表