|
本帖最后由 123 于 2017-10-12 21:42 编辑
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- 置随机数种子 ()
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 密钥, 字节集
- .局部变量 加密后的, 字节集
- .局部变量 解密后的, 字节集
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 密钥 = 生成有效密钥 ()
- 加密后的 = 加解密数据 (读入文件 (“加密前.bin”), 密钥, 假)
- 解密后的 = 加解密数据 (加密后的, 密钥, 真)
- 写到文件 (“密钥.bin”, 密钥)
- 写到文件 (“加密后的.bin”, 加密后的)
- 写到文件 (“解密后的.bin”, 解密后的)
- .子程序 生成有效密钥, 字节集
- .局部变量 i, 整数型
- .局部变量 数据, 字节集
- 数据 = 取空白字节集 (256)
- .计次循环首 (256, i)
- 数据 [i] = i - 1
- .计次循环尾 ()
- .判断循环首 (密钥校验 (数据) = 假)
- 交换字节 (数据 [取随机数 (1, 256)], 数据 [取随机数 (1, 256)])
- .判断循环尾 ()
- 返回 (数据)
- .子程序 交换字节
- .参数 字节A, 字节型, 参考
- .参数 字节B, 字节型, 参考
- .局部变量 字节C, 字节型
- 字节C = 字节A
- 字节A = 字节B
- 字节B = 字节C
- .子程序 转为解密密钥, 字节集
- .参数 数据, 字节集
- .局部变量 返回值, 字节集
- .局部变量 i, 整数型
- 返回值 = 取空白字节集 (256)
- .计次循环首 (256, i)
- 返回值 [数据 [i] + 1] = i - 1
- .计次循环尾 ()
- 返回 (返回值)
- .子程序 加解密数据, 字节集, , 失败返回空
- .参数 数据, 字节集
- .参数 密钥, 字节集
- .参数 解密, 逻辑型, 可空
- .局部变量 i, 整数型
- .局部变量 结果, 字节集
- 结果 = 取空白字节集 (取字节集长度 (数据))
- .如果真 (密钥是否有效 (密钥) = 假)
- 返回 ({ })
- .如果真结束
- .如果真 (解密 = 真)
- 密钥 = 转为解密密钥 (密钥)
- .如果真结束
- .计次循环首 (取字节集长度 (数据), i)
- 结果 [i] = 密钥 [数据 [i] + 1]
- .计次循环尾 ()
- 返回 (结果)
- .子程序 密钥校验, 逻辑型, , 值与数组下标有1个相同时返回假,否则返回真。
- .参数 密钥, 字节集
- .局部变量 i, 整数型
- .局部变量 j, 整数型
- .局部变量 值, 整数型
- .计次循环首 (256, i)
- 值 = i - 1
- .如果真 (密钥 [i] = 值)
- 返回 (假)
- .如果真结束
- .计次循环尾 ()
- 返回 (真)
- .子程序 密钥冲突校验, 逻辑型, , 密钥中若出现两次相同的值则为冲突密钥就返回真,此类密钥会使数据丢失将不能正常解密数据。
- .参数 密钥, 字节集
- .局部变量 被占用的字节, 逻辑型, , "256"
- .局部变量 i, 整数型
- .计次循环首 (256, i)
- .如果真 (被占用的字节 [密钥 [i] + 1] = 真)
- 返回 (真)
- .如果真结束
- 被占用的字节 [密钥 [i] + 1] = 真
- .计次循环尾 ()
- 返回 (假)
- .子程序 密钥是否有效, 逻辑型
- .参数 密钥, 字节集
- .如果真 (取字节集长度 (密钥) ≠ 256)
- 返回 (假)
- .如果真结束
- .如果真 (密钥冲突校验 (密钥) = 真)
- 返回 (假)
- .如果真结束
- .如果真 (密钥校验 (密钥) = 假)
- 返回 (假)
- .如果真结束
- 返回 (真)
复制代码
|
评分
-
2
查看全部评分
-
|