RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号名人Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。RC4算法是一种在电子信息行业加密的技术手段,用于没线通信网络,是一种电子暗码,仅有经过授权(缴纳相应花费)的用户才可享受该服务。
RC4于1987年提出,是一种对叫作加密算法,亦便是说运用的密钥为单钥(或叫作为私钥)。RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候亦是依次对密文中的每一个字节进行解密。
RC4算法的特点是算法简单,运行速度快,况且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在如今技术支持的前提下,当密钥长度为128比特时,用暴力法搜索密钥已然不太可行,因此能够预见RC4的密钥范围任然能够在今后相当长的时间里抵御暴力搜索密钥的攻击。实质上,如今亦无找到针对128bit密钥长度的RC4加密算法的有效攻击办法
/* $pwd 秘钥;
$data 要加密的数据
*/
public function rc4($pwd, $data)
{
$cipher = ;
$key[] = "";
$box[] = "";
$pwd_length = strlen($pwd);
$data_length = strlen($data);
for ($i = 0; $i < 256; $i++) {
$key[$i] = ord($pwd[$i % $pwd_length]);
$box[$i] = $i;
}
for ($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $key[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $data_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$k = $box[(($box[$a] + $box[$j]) % 256)];
$cipher .= chr(ord($data[$i]) ^ $k);
}
return $cipher;
}
解密的话重新调用一次该办法就可
以上内容期盼帮忙到大众,非常多PHPer在进阶的时候总会遇到有些问题和瓶颈,业务代码写多了无方向感,不晓得该从那里入手去提高,对此我整理了有些资料,包含但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货必须的可以避免费分享给大众,必须
或 者关注咱们下面的知乎专栏
源自:https://www.cnblogs.com/haoxuanchen2014/p/7783782.html
|