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

从F到0 - From F to 0

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

易语言迅雷URL链接编码解码(加密解密)转换模块源码 (支持UTF8编码,纯核心库无需DLL)

[复制链接]
发表于 2020-10-7 20:52:13 | 显示全部楼层 |阅读模式
1.png

  1. .版本 2

  2. .程序集 程序集1

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


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

  6. .子程序 _临时子程序

  7. 输出调试文本 (迅雷URL编码 (“https://www.fedcba9876543210.com/”))
  8. 输出调试文本 (迅雷URL解码 (“thunder://QUFodHRwczovL3d3dy5mZWRjYmE5ODc2NTQzMjEwLmNvbS9aWg==”))

  9. .子程序 迅雷URL解码, 文本型, 公开, 将迅雷链接还原成普通链接,失败返回空文本
  10. .参数 迅雷链接, 文本型, , thunder:// 开头
  11. .参数 UTF8, 逻辑型, 可空, 是否使用UTF8,留空不使用
  12. .局部变量 Base64, 文本型
  13. .局部变量 URL, 文本型

  14. .如果真 (到小写 (迅雷链接) ≈ “thunder://” = 假)
  15.     返回 (“”)
  16. .如果真结束
  17. Base64 = 取文本右边 (迅雷链接, 取文本长度 (迅雷链接) - 10)
  18. .如果 (UTF8)
  19.     URL = UTF8到文本 (Base64解码 (Base64))
  20. .否则
  21.     URL = 到文本 (Base64解码 (Base64))
  22. .如果结束
  23. .如果真 (URL ≈ “AA” = 假 或 近似等于_尾 (URL, “ZZ”) = 假)
  24.     返回 (“”)
  25. .如果真结束
  26. 返回 (取文本中间 (URL, 3, 取文本长度 (URL) - 4))


  27. .子程序 迅雷URL编码, 文本型, 公开, 将普通链接转换成迅雷链接,失败返回空文本
  28. .参数 普通链接, 文本型
  29. .参数 UTF8, 逻辑型, 可空, 是否使用UTF8,留空不使用

  30. .如果真 (普通链接 = “”)
  31.     返回 (“”)
  32. .如果真结束
  33. .如果真 (UTF8)
  34.     返回 (“thunder://” + Base64编码 (文本到UTF8 (“AA” + 普通链接 + “ZZ”)))
  35. .如果真结束
  36. 返回 (“thunder://” + Base64编码 (到字节集 (“AA” + 普通链接 + “ZZ”)))



  37. .子程序 Base64编码, 文本型
  38. .参数 待编码数据, 字节集
  39. .局部变量 余数, 整数型
  40. .局部变量 临时, 字节型, , "3"
  41. .局部变量 计数2, 整数型
  42. .局部变量 集合, 字节集
  43. .局部变量 长度, 整数型
  44. .局部变量 返回值, 字节集
  45. .局部变量 计数, 整数型

  46. 长度 = 取字节集长度 (待编码数据)
  47. .如果真 (长度 < 1)
  48.     返回 (“”)
  49. .如果真结束
  50. 余数 = 长度 % 3
  51. .如果真 (余数 > 0)
  52.     待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数)
  53. .如果真结束
  54. 长度 = 取字节集长度 (待编码数据)
  55. 返回值 = 取空白字节集 (长度 × 4 ÷ 3)
  56. 计数 = 1
  57. 集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
  58. .变量循环首 (1, 长度, 3, 计数2)
  59.     临时 [1] = 待编码数据 [计数2]
  60.     临时 [2] = 待编码数据 [计数2 + 1]
  61.     临时 [3] = 待编码数据 [计数2 + 2]
  62.     返回值 [计数] = 集合 [右移 (临时 [1], 2) + 1]
  63.     返回值 [计数 + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1]
  64.     返回值 [计数 + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1]
  65.     返回值 [计数 + 3] = 集合 [位与 (临时 [3], 63) + 1]
  66.     计数 = 计数 + 4
  67. .变量循环尾 ()
  68. .如果真 (余数 > 0)
  69.     长度 = 取字节集长度 (返回值)
  70.     .如果 (余数 = 1)
  71.         返回值 [长度 - 1] = 取代码 (“=”, )
  72.         返回值 [长度] = 取代码 (“=”, )
  73.     .否则
  74.         返回值 [长度] = 取代码 (“=”, )
  75.     .如果结束

  76. .如果真结束
  77. 返回 (到文本 (返回值))

  78. .子程序 Base64解码, 字节集
  79. .参数 待解码数据, 文本型
  80. .局部变量 文本长度, 整数型
  81. .局部变量 整倍数, 整数型
  82. .局部变量 三字节组, 字节型, , "3"
  83. .局部变量 四字节组, 字节型, , "4"
  84. .局部变量 编码值, 整数型
  85. .局部变量 计数, 整数型
  86. .局部变量 计数2, 整数型
  87. .局部变量 返回值, 字节集

  88. 待解码数据 = 删全部空 (待解码数据)
  89. 待解码数据 = 子文本替换 (待解码数据, #换行符, , , , 真)
  90. 文本长度 = 取文本长度 (待解码数据)
  91. 整倍数 = 文本长度 \ 4
  92. .如果真 (文本长度 % 4 ≠ 0)
  93.     整倍数 = 整倍数 + 1
  94. .如果真结束
  95. .计次循环首 (整倍数, 计数)
  96.     .计次循环首 (4, 计数2)
  97.         四字节组 [计数2] = 取代码 (待解码数据, (计数 - 1) × 4 + 计数2)
  98.         编码值 = 寻找文本 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”, 字符 (四字节组 [计数2]), , 假)
  99.         .如果真 (编码值 = -1)
  100.             跳出循环 ()
  101.         .如果真结束
  102.         四字节组 [计数2] = 编码值 - 1
  103.     .计次循环尾 ()
  104.     三字节组 [1] = 位或 (四字节组 [1] × 4, 四字节组 [2] ÷ 16)
  105.     三字节组 [2] = 位或 (四字节组 [2] × 16, 四字节组 [3] ÷ 4)
  106.     三字节组 [3] = 位或 (四字节组 [3] × 64, 四字节组 [4])
  107.     返回值 = 返回值 + 到字节集 (三字节组)
  108.     处理事件 ()
  109. .计次循环尾 ()
  110. .如果真 (计数2 < 5)
  111.     计数2 = 5 - 计数2
  112.     返回值 = 取字节集左边 (返回值, 取字节集长度 (返回值) - 计数2)
  113. .如果真结束
  114. 返回 (返回值)

  115. .子程序 近似等于_尾, 逻辑型, , 当比较文本在被比较文本的尾部被包容时返回真,否则返回假
  116. .参数 被比较文本, 文本型
  117. .参数 比较文本, 文本型

  118. .如果真 (比较文本 = “” 或 被比较文本 = “”)
  119.     返回 (假)
  120. .如果真结束
  121. 返回 (取文本右边 (被比较文本, 取文本长度 (比较文本)) = 比较文本)
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-3-29 05:13 , Processed in 0.462027 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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