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

从F到0 - From F to 0

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

字节集数据膨胀式可逆加密算法1.0无密钥版 膨胀后长度、倍数、耗时不定 自带校验

[复制链接]
发表于 2018-10-22 23:17:55 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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

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

  8. .子程序 _临时子程序
  9. .局部变量 膨胀后, 字节集

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

  11. 膨胀后 = 字节集_膨胀 (到字节集 (“Hello World!”))
  12. 调试输出 (“膨胀后”, 膨胀后)

  13. 调试输出 (到文本 (字节集_反膨胀 (膨胀后)))


  14. .子程序 逻辑型数组编码
  15. .参数 逻辑数组, 逻辑型, 参考 数组
  16. .局部变量 数组副本, 逻辑型, , "0"
  17. .局部变量 位置, 整数型
  18. .局部变量 逻辑态, 逻辑型

  19. .计次循环首 (取数组成员数 (逻辑数组), 位置)
  20.     加入成员 (数组副本, 逻辑态)
  21.     .如果真 (逻辑数组 [位置])
  22.         加入成员 (数组副本, 逻辑态)
  23.     .如果真结束
  24.     逻辑态 = 取反 (逻辑态)
  25. .计次循环尾 ()
  26. 逻辑数组 = 数组副本


  27. .子程序 逻辑型数组解码, 逻辑型
  28. .参数 逻辑数组, 逻辑型, 数组
  29. .局部变量 位置, 整数型
  30. .局部变量 旧逻辑态, 逻辑型
  31. .局部变量 连续数, 字节型
  32. .局部变量 数组副本, 逻辑型, , "0"
  33. .局部变量 成员数, 整数型

  34. 成员数 = 取数组成员数 (逻辑数组)
  35. .如果真 (成员数 ≤ 0)
  36.     返回 (假)
  37. .如果真结束
  38. .计次循环首 (成员数, 位置)
  39.     .如果 (旧逻辑态 ≠ 逻辑数组 [位置] 且 位置 > 1)
  40.         加入成员 (数组副本, 连续数 = 2)
  41.         连续数 = 1
  42.     .否则
  43.         连续数 = 连续数 + 1
  44.         .如果真 (连续数 > 2)
  45.             返回 (假)
  46.         .如果真结束

  47.     .如果结束
  48.     旧逻辑态 = 逻辑数组 [位置]
  49. .计次循环尾 ()
  50. 加入成员 (数组副本, 连续数 = 2)
  51. 逻辑数组 = 数组副本
  52. 返回 (真)


  53. .子程序 字节集到逻辑型数组
  54. .参数 字节集数据, 字节集
  55. .参数 逻辑型数组, 逻辑型, 参考 数组
  56. .参数 高到低位, 逻辑型, 可空
  57. .局部变量 字节集长度, 整数型
  58. .局部变量 字节集计数, 整数型
  59. .局部变量 移位位数计数, 整数型
  60. .局部变量 移位后的值, 字节型
  61. .局部变量 逻辑数组计数, 整数型
  62. .局部变量 循环数组, 整数型, , "0"

  63. 字节集长度 = 取字节集长度 (字节集数据)
  64. 重定义数组 (逻辑型数组, 假, 字节集长度 × 8)
  65. .如果 (高到低位)
  66.     循环数组 = { 7, 0, -1 }
  67. .否则
  68.     循环数组 = { 0, 7, 1 }
  69. .如果结束
  70. .计次循环首 (字节集长度, 字节集计数)
  71.     .变量循环首 (循环数组 [1], 循环数组 [2], 循环数组 [3], 移位位数计数)
  72.         逻辑数组计数 = 逻辑数组计数 + 1
  73.         移位后的值 = 左移 (1, 移位位数计数)
  74.         逻辑型数组 [逻辑数组计数] = 位与 (字节集数据 [字节集计数], 移位后的值) = 移位后的值
  75.     .变量循环尾 ()
  76. .计次循环尾 ()


  77. .子程序 逻辑型数组到字节集, 字节集
  78. .参数 逻辑型数组, 逻辑型, 数组
  79. .参数 高到低位, 逻辑型, 可空
  80. .局部变量 逻辑组长度, 整数型
  81. .局部变量 字节集数据, 字节集
  82. .局部变量 字节集长度, 整数型
  83. .局部变量 计数, 整数型
  84. .局部变量 移位计数, 整数型
  85. .局部变量 逻辑计数, 整数型
  86. .局部变量 循环数组, 整数型, , "0"

  87. 逻辑组长度 = 取数组成员数 (逻辑型数组)
  88. .如果真 (逻辑组长度 % 8 ≠ 0)
  89.     输出调试文本 (“数组成员数必须是8的倍数才可以导出字节集数据。”)
  90.     返回 ({  })
  91. .如果真结束
  92. 字节集数据 = 取空白字节集 (逻辑组长度 ÷ 8)
  93. 字节集长度 = 取字节集长度 (字节集数据)
  94. .如果 (高到低位)
  95.     循环数组 = { 7, 0, -1 }
  96. .否则
  97.     循环数组 = { 0, 7, 1 }
  98. .如果结束
  99. .计次循环首 (字节集长度, 计数)
  100.     .变量循环首 (循环数组 [1], 循环数组 [2], 循环数组 [3], 移位计数)
  101.         .如果真 (逻辑型数组 [逻辑计数 + 1])
  102.             字节集数据 [计数] = 位或 (左移 (1, 移位计数), 字节集数据 [计数])
  103.         .如果真结束
  104.         逻辑计数 = 逻辑计数 + 1
  105.     .变量循环尾 ()
  106. .计次循环尾 ()
  107. 返回 (字节集数据)


  108. .子程序 字节集_膨胀, 字节集, 公开, 膨胀一段字节集数据,处理耗时以及膨胀倍数不定
  109. .参数 数据, 字节集
  110. .局部变量 逻辑型数组, 逻辑型, , "0"

  111. 字节集到逻辑型数组 (数据, 逻辑型数组, 假)
  112. .循环判断首 ()
  113.     逻辑型数组编码 (逻辑型数组)
  114. .循环判断尾 (取数组成员数 (逻辑型数组) % 8 ≠ 0)
  115. 返回 (逻辑型数组到字节集 (逻辑型数组, 假))


  116. .子程序 字节集_反膨胀, 字节集, 公开, 将已膨胀的字节集数据进行还原
  117. .参数 数据, 字节集
  118. .局部变量 逻辑型数组, 逻辑型, , "0"
  119. .局部变量 数组副本, 逻辑型, , "0"

  120. 字节集到逻辑型数组 (数据, 逻辑型数组, 假)
  121. .判断循环首 (逻辑型数组解码 (逻辑型数组))
  122. .判断循环尾 ()

  123. 返回 (逻辑型数组到字节集 (逻辑型数组, 假))
复制代码


相关帖子

发表于 2018-10-23 08:14:46 | 显示全部楼层
这总有人发一些奇怪的玩意
发表于 2018-10-23 22:14:20 | 显示全部楼层
头一次听说
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-19 13:45 , Processed in 0.441026 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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