2.md5(md5+常量) 加密原始key =>mkey
3.mkey 作为AC4的密匙 ac_mkey
4.ac_mkey 对加密数据 进行 AC4 加密 得到AC4密码
5.AC4密码 在进行一次 AC4加密可还原 加密数据
简单来说,一句话,用md5 做AC4的密匙
以下是代码
<?php
/*
* rc4加密算法
* $pwd 密钥
* $data 要加密的数据
*/
function rc4 ($pwd, $data)//$pwd密钥 $data需加密字符串
{
$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
}
$key = '5201314' //原始KEY
$pwd = md5(md5($key).'我是常量')//md5+常量
$data = '我爱北京天安门' //要加密的数据
$cipher = rc4($pwd, $data) //AC4 加密算法
$c = rc4($pwd, $cipher) //AC4 加密算法还原 (还原只需要重新加密一次)
echo '<pre>'
var_dump($key)
var_dump($pwd)
var_dump($data)
var_dump($cipher)
var_dump($c)
?>
uniapp如何加密解密rc4步骤:1、第一步是生成S盒
2、初始排列S然后用T产生S的初始置换.从S到S255,对每个Si,根据由Ti确定的方案,将Si置换为S中的另一字节
3、产生密钥流矢量S一旦完成初始化,输人密钥就不再被使用。
4、最后进行异或运算data与key按位异或 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)