参考链接:https://www.biaodianfu.com/rc4.html
前言
感觉RC4算法还是很常见的,特此学习下特征。
https://github.com/anthonywei/rc4 各种语言的rc4实现
介绍
RC4算法是一种对称加密算法,所谓对称加密,就是加密和解密的过程是一样的.
c=rc4(key,m)
m=rc4(key,c)
这种对称性是基于密匙流加密的特征。密匙流就是说我的数据是N位,那么我通过一定算法生成N位的数据,然后将其xor得到密文。因为是xor操作,所以同样的可以通过密文,经过同样的key得到明文。因此通过密匙流加密算法的一个很重要的特征就是xor操作。
RC4算法的原理
这里借用参考链接中的一张图。
第一步:使用KSA算法根据用户输入的key,生成S盒
这一步通常会使用两次for循环,一次是为了将数据转入S盒,第二次是为了将S盒打乱。
从上面的两种实现中可以看出一下共通的地方,在初始化key时所做的操作。
第二步:使用PRGA算法生成密匙流加密数据
总结
常见的算法多做下总结!