|
发表于 2021-5-14 14:38:52
|
显示全部楼层
福建省厦门市
.版本 2
.支持库 dp1
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 原字节集, 字节集
.局部变量 加密字节集, 字节集
原字节集 = 到字节集 (“原文本”)
加密字节集 = 加密数据 (原字节集, “诚信第一”, #RC4算法)
编辑框1.内容 = “加密数据 加密字节集:” + 字节集到文本 (加密字节集) + #换行符
加密字节集 = 数据操作_加密数据 (原字节集, “诚信第一”, 2)
编辑框1.内容 = 编辑框1.内容 + “数据操作_加密数据 加密字节集:” + 字节集到文本 (加密字节集)
原字节集 = 解密数据 (加密字节集, “诚信第一”, #RC4算法)
编辑框1.内容 = 编辑框1.内容 + “解密数据 原字节集:” + 字节集到文本 (原字节集)
原字节集 = 加密数据 (加密字节集, “诚信第一”, #RC4算法) ' 其实加密和解密算法相同,再加密一次即还原
输出调试文本 (“ 加密数据 原字节集:” + 字节集到文本 (原字节集))
' 本源码来自易语言资源网(www.eyuyan.la)
原字节集 = 数据操作_解密数据 (加密字节集, “诚信第一”, 2)
编辑框1.内容 = 编辑框1.内容 + “数据操作_解密数据 原字节集:” + 字节集到文本 (原字节集)
原字节集 = 数据操作_加密数据 (加密字节集, “诚信第一”, 2) ' 其实加密和解密算法相同,再加密一次即还原
编辑框1.内容 = 编辑框1.内容 + “数据操作_加密数据 原字节集:” + 字节集到文本 (原字节集)
.子程序 数据操作_加密数据, 字节集, , 其实加密和解密算法相同,再加密一次即还原
.参数 字节集数据, 字节集
.参数 密码文本, 文本型
.参数 加密算法, 整数型, 可空
.局部变量 返回字节集, 字节集
.如果真 (是否为空 (加密算法))
加密算法 = 1
.如果真结束
.判断开始 (加密算法 = 1)
' 本源码来自易语言资源网(www.eyuyan.la)
.判断 (加密算法 = 2)
返回字节集 = RC4 (字节集数据, 密码文本)
.默认
.判断结束
返回 (返回字节集)
.子程序 数据操作_解密数据, 字节集, , 其实加密和解密算法相同,再加密一次即还原
.参数 字节集数据, 字节集
.参数 密码文本, 文本型
.参数 加密算法, 整数型, 可空
.局部变量 返回字节集, 字节集
.如果真 (是否为空 (加密算法))
加密算法 = 1
.如果真结束
.判断开始 (加密算法 = 1)
' 本源码来自易语言资源网(www.eyuyan.la)
.判断 (加密算法 = 2)
返回字节集 = RC4 (字节集数据, 密码文本)
.默认
.判断结束
返回 (返回字节集)
.子程序 RC4, 字节集
.参数 字节集数据, 字节集
.参数 密码文本, 文本型
.局部变量 S, 字节型, , "256"
.局部变量 K, 字节型, , "256"
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 temp, 字节型, , , 交换字节用
.局部变量 Y, 整数型
.局部变量 Outp, 字节集
.局部变量 x, 整数型
.局部变量 t, 整数型
.局部变量 密码长度, 整数型
.计次循环首 (256, i)
S = i - 1
.计次循环尾 ()
j = 1
密码长度 = 取文本长度 (密码文本)
.计次循环首 (256, i)
.如果真 (j > 密码长度)
j = 1 ' 重复取
.如果真结束
K = 取代码 (取文本中间 (密码文本, j, 1), 1)
j = j + 1
' 本源码来自易语言资源网(www.eyuyan.la)
.计次循环尾 ()
j = 0
.计次循环首 (256, i)
j = (j + S + K ) % 256
temp = S ' 交换字节
S = S [j + 1]
S [j + 1] = temp
.计次循环尾 ()
i = 0
j = 0
.计次循环首 (取字节集长度 (字节集数据), x)
i = (i + 1) % 256
j = (j + S [i + 1]) % 256
temp = S [i + 1] ' 交换字节
S [i + 1] = S [j + 1]
S [j + 1] = temp
t = (S [i + 1] + S [j + 1] % 256) % 256
Y = S [t + 1] ' 注意要+1
' 本源码来自易语言资源网(www.eyuyan.la)
Outp = Outp + 到字节集 (到字节 (位异或 (字节集数据 [x], Y)))
.计次循环尾 ()
返回 (Outp)
.子程序 字节集到文本, 文本型
.参数 字节集, 字节集
.局部变量 n, 整数型
.局部变量 文本, 文本型
.局部变量 单字节, 字节集
.局部变量 长度, 整数型
长度 = 取字节集长度 (字节集)
.计次循环首 (长度, n)
单字节 = 取字节集中间 (字节集, n, 1)
文本 = 文本 + 到文本 (取字节集数据 (单字节, #字节型, ))
.如果真 (n < 长度)
文本 = 文本 + “,” ' 没有到最后一个都加逗号
.如果真结束
' 本源码来自易语言资源网(www.eyuyan.la)
.计次循环尾 ()
返回 (“{ ” + 文本 + “ }”)
|
|