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

从F到0 - From F to 0

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

世界首款不影响压缩率的加密算法易语言实现,采用特定查表算法实现的加密而不影响压缩

[复制链接]
发表于 2017-6-19 08:41:15 | 显示全部楼层 |阅读模式
本帖最后由 123 于 2017-10-12 21:42 编辑

  1. .版本 2

  2. .程序集 程序集1

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

  4. 置随机数种子 ()
  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码

  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序
  8. .局部变量 密钥, 字节集
  9. .局部变量 加密后的, 字节集
  10. .局部变量 解密后的, 字节集

  11. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  12. 密钥 = 生成有效密钥 ()
  13. 加密后的 = 加解密数据 (读入文件 (“加密前.bin”), 密钥, 假)
  14. 解密后的 = 加解密数据 (加密后的, 密钥, 真)
  15. 写到文件 (“密钥.bin”, 密钥)
  16. 写到文件 (“加密后的.bin”, 加密后的)
  17. 写到文件 (“解密后的.bin”, 解密后的)


  18. .子程序 生成有效密钥, 字节集
  19. .局部变量 i, 整数型
  20. .局部变量 数据, 字节集

  21. 数据 = 取空白字节集 (256)
  22. .计次循环首 (256, i)
  23.     数据 [i] = i - 1
  24. .计次循环尾 ()
  25. .判断循环首 (密钥校验 (数据) = 假)
  26.     交换字节 (数据 [取随机数 (1, 256)], 数据 [取随机数 (1, 256)])
  27. .判断循环尾 ()
  28. 返回 (数据)

  29. .子程序 交换字节
  30. .参数 字节A, 字节型, 参考
  31. .参数 字节B, 字节型, 参考
  32. .局部变量 字节C, 字节型

  33. 字节C = 字节A
  34. 字节A = 字节B
  35. 字节B = 字节C


  36. .子程序 转为解密密钥, 字节集
  37. .参数 数据, 字节集
  38. .局部变量 返回值, 字节集
  39. .局部变量 i, 整数型

  40. 返回值 = 取空白字节集 (256)
  41. .计次循环首 (256, i)
  42.     返回值 [数据 [i] + 1] = i - 1
  43. .计次循环尾 ()
  44. 返回 (返回值)

  45. .子程序 加解密数据, 字节集, , 失败返回空
  46. .参数 数据, 字节集
  47. .参数 密钥, 字节集
  48. .参数 解密, 逻辑型, 可空
  49. .局部变量 i, 整数型
  50. .局部变量 结果, 字节集

  51. 结果 = 取空白字节集 (取字节集长度 (数据))
  52. .如果真 (密钥是否有效 (密钥) = 假)
  53.     返回 ({  })
  54. .如果真结束
  55. .如果真 (解密 = 真)
  56.     密钥 = 转为解密密钥 (密钥)
  57. .如果真结束
  58. .计次循环首 (取字节集长度 (数据), i)
  59.     结果 [i] = 密钥 [数据 [i] + 1]
  60. .计次循环尾 ()
  61. 返回 (结果)

  62. .子程序 密钥校验, 逻辑型, , 值与数组下标有1个相同时返回假,否则返回真。
  63. .参数 密钥, 字节集
  64. .局部变量 i, 整数型
  65. .局部变量 j, 整数型
  66. .局部变量 值, 整数型

  67. .计次循环首 (256, i)
  68.     值 = i - 1
  69.     .如果真 (密钥 [i] = 值)
  70.         返回 (假)
  71.     .如果真结束

  72. .计次循环尾 ()
  73. 返回 (真)

  74. .子程序 密钥冲突校验, 逻辑型, , 密钥中若出现两次相同的值则为冲突密钥就返回真,此类密钥会使数据丢失将不能正常解密数据。
  75. .参数 密钥, 字节集
  76. .局部变量 被占用的字节, 逻辑型, , "256"
  77. .局部变量 i, 整数型

  78. .计次循环首 (256, i)
  79.     .如果真 (被占用的字节 [密钥 [i] + 1] = 真)
  80.         返回 (真)
  81.     .如果真结束
  82.     被占用的字节 [密钥 [i] + 1] = 真
  83. .计次循环尾 ()
  84. 返回 (假)

  85. .子程序 密钥是否有效, 逻辑型
  86. .参数 密钥, 字节集

  87. .如果真 (取字节集长度 (密钥) ≠ 256)
  88.     返回 (假)
  89. .如果真结束
  90. .如果真 (密钥冲突校验 (密钥) = 真)
  91.     返回 (假)
  92. .如果真结束
  93. .如果真 (密钥校验 (密钥) = 假)
  94.     返回 (假)
  95. .如果真结束
  96. 返回 (真)
复制代码


评分

2

查看全部评分

相关帖子

 楼主| 发表于 2017-8-31 23:22:53 | 显示全部楼层

原理其实很简单,加密时需要一个256字节且字节不重复的表,每一个字节通过查表找到另一个字节,解密就是反向查表,数据所出现的字节数是不变的,所以就不会影响到压缩率。

发表于 2017-10-23 18:32:19 | 显示全部楼层
不知道这里有多少个帖子有世界首款这4个字。
发表于 2017-8-18 20:20:45 | 显示全部楼层
一脸萌比,如果您要查看本帖隐藏内容请回复

发表于 2017-6-19 18:01:37 | 显示全部楼层
看看是神算法加密了
发表于 2017-7-10 18:26:13 | 显示全部楼层
确实很六啊。
发表于 2017-7-22 22:30:47 | 显示全部楼层
路过而已打酱油的。
发表于 2017-9-7 09:35:18 | 显示全部楼层
哦,原来如此。
发表于 2017-9-13 22:19:34 | 显示全部楼层
这发明6啊,果然发明家都在这里聚集。

发表于 2017-9-26 12:29:38 | 显示全部楼层
我也来看看
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-17 05:16 , Processed in 0.654038 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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