程序实现时须要注意的是状态向量数组S和暂时向量数组T的类型应设为unsigned char而不是char。由于在一些机器下将char默认做为signed char看待在算法中计算下标ij的时候会涉及char转int。假设是signed的char。那么将char的8位复制到int的低8位后还会依据char的符号为在int的高位补0或1。由于密钥是随机产生的假设遇到密钥的某个字节的高位为1的话那么计算得到的数组下标为负数就会越界。
程序执行演示样例
main函数
int main(){ RC4 rc4(16); //密钥长16字节 rc4.encryption("明文.txt","密钥流.txt","密文.txt"); RC4_decryption decrypt("密钥流.txt","密文.txt"); decrypt.decryption("解密文件.txt"); }明文我爱小兔子
密文'柀L&t餥6洲
密钥流镈膺嚬3屽u
解密文件我爱小兔子。
这是第一篇网络安全方面的博客。如有错误欢迎指正
本文转自mfrbuaa博客园博客原文链接如需转载请自行联系原作者
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。