|
本帖最后由 殇桀 于 2013-3-23 17:49 编辑
子程序:RC4
返回值类型:字节集
备注:RC4加密算法
参数:源
数据类型:字节集
参数:密匙
数据类型:文本型
局部容器:K
据类型:字节型
数组:256
局部容器:S
数据类型:字节型
数组:256 局部容器:i
局部容器:j 局部容器:y
数据类型:字节型
局部容器:t
局部容器:x
局部容器:temp
数据类型:
字节型 局部容器:Outp
数据类型:字节集
部容器:ee
数据类型:字节型
次循环首 (256, i) S = i - 1
计次循环尾 () j = 1
容器循环首 (0, 255, 1, i)
如果真 (j > 取文本长度 (密匙))
j = 1
如果真结束 K [i + 1] = 取代码 (取文本中间 (密匙, j, 1), ) j = j + 1
器循环尾 () j = 0
器循环首 (0, 255, 1, i) j = (j + S [i + 1] + K [i + 1] + 256) % 256 temp = S [i + 1] S [i + 1] = S [j + 1] S [j + 1] = temp
容器循环尾 () 连续赋值 (0, i, j)
器循环首 (1, 取字节集长度 (源), 1, x) i = (i + 1 + 256) % 256 j = (j + S [i + 1] + 256) % 256 temp = S [i + 1] S [i + 1] = S [j + 1] S [j + 1] = temp t = (S [i + 1] + (S [j + 1] + 256) % 256 + 256) % 256 y = S [t + 1] ee = 位异或 (源 [x], y) Outp = Outp + 转换为字节集 (ee)
容器循环尾 () 返回 (Outp) 用同样的密码对加密后的文件再加密一次就是解密了。
我的QQ:592070616
易语言讨论QQ群:27101048
|
|