首页 编程设计PHP正文

PHP实现RC4加密方法

云水 PHP 2020-06-26 13:40:12 1488 0 PHPphp

在编写程序时,时常会用到一些加密算法, 以下是RC4的实现方式:

注意在实现的时候,单一用RC4加密,产生的是乱码,因为RC4加密后产生的是字节型,一般是在再用base64加密,就不会出现了。

<?php
/**
 * rc4加密算法,解密方法直接再一次加密就是解密
 * @param  [type] $data 要加密的数据
 * @param  [type] $pwd  加密使用的key
 * @return [type]       [description]
 */
function rc4($data, $pwd) {
$key[]       = "";
$box[]       = "";
$pwd_length  = strlen($pwd);
$data_length = strlen($data);
$cipher      = '';
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;
}
//对$data进行RC4加密,之后再进行base64加密
$data = "www.apod.cc";
//对$data加密
$data = base64_encode(rc4($data,"123"));
//对$data解密
$data=rc4(base64_decode($data),"123");
echo $data;
?>
版权声明

1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)

本文链接:http://apod.cc/index.php/post/433.html

发表评论

评论列表(0人评论 , 1488人围观)
☹还没有评论,来说两句吧...