</pre><p><pre name="code" class="php"><?php
function encode($string = '', $skey = 'cxphp') {
echo "加密钥匙是:".$skey."<br>";
echo "加密钥匙转码后:".base64_encode($skey)."<br>";
echo "..加密钥匙数组1............................<br>";
$skey = str_split(base64_encode($skey));
print_r($skey);
echo "<br>..............................<br>";
$strArr = str_split(base64_encode($string));
echo "加密字符串是:".$string."<br>";
echo "加密字符串转码后:".base64_encode($string)."<br>";
$strCount = count($strArr);
echo "加密字符串转码数组长度:".$strCount."<br>";
echo "..数组2...........................<br>";
print_r($strArr);
echo "<br>..............................<br>";
foreach ($skey as $key => $value) {
echo $key."<".$strCount."==>".$strArr[$key].".=".$value." ";
$key < $strCount && $strArr[$key].=$value;
echo "操作后的数组tmp:".$strArr[$key]."<br>";
}
echo "..加密后数组3...........................<br>";
print_r($strArr);
echo "<br>..返回字符串...........................<br>";
echo str_replace('=', 'O0O0O', join('', $strArr));
echo "<br>..............................<br>";
return str_replace('=', 'O0O0O', join('', $strArr));
}
//解密
function decode($string = '', $skey = 'cxphp') {
echo "解密钥匙是:".$skey."<br>";
echo "解密钥匙转码后:".base64_encode($skey)."<br>";
echo "..解密钥匙数组1............................<br>";
$skey = str_split(base64_encode($skey));
print_r($skey);
echo "<br>..............................<br>";
echo "要处理的字符串:".$string."<br>";
echo "对字符串处理后:".str_replace('O0O0O', '=', $string)."<br>";
$strArr = str_split(str_replace('O0O0O', '=', $string), 2);
$strCount = count($strArr);
echo "解密字符串转码数组长度:".$strCount."<br>";
echo "..数组2...........................<br>";
print_r($strArr);
echo "<br>..............................<br>";
foreach ($skey as $key => $value) {
echo $key."<".$strCount." and ".$strArr[$key][1]."=".$value." ==> ".$strArr[$key]."=".$strArr[$key][0];
$key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
echo " 操作后的数组tmp:".$strArr[$key]."<br>";
}
echo "解码前字符串:".join('', $strArr)."<br>";
echo "解密后的字符串:".base64_decode(join('', $strArr))."<br>";
return base64_decode(join('', $strArr));
}
function Aencode($string='') {
$strArr = str_split(base64_encode($string));
$strCount = count($strArr);
$skey1;
$ssssrand="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for($i=0;$i<$strCount;$i++)
{
$skey1.=substr($ssssrand,mt_rand(0,mb_strlen($ssssrand)-1),1);
}
$skey = str_split(base64_encode($skey1));
foreach ($skey as $key => $value) {
$key < $strCount && $strArr[$key].=$value;
}
$r=array();
$r['s']=str_replace('=', 'O0O0O', join('', $strArr));
$r['k']=$skey1;
return $r;
}
//解密
function Adecode($r = '') {
$skey=$r['k'];
$string=$r['s'];
$skey = str_split(base64_encode($skey));
$strArr = str_split(str_replace('O0O0O', '=', $string), 2);
$strCount = count($strArr);
foreach ($skey as $key => $value) {
$key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
}
return base64_decode(join('', $strArr));
}
$string="中华人民共和国";
$jia=Aencode($string);
$jie=Adecode($jia,$key);
echo "密文 : ".$jia['s']."<br>";
echo "密钥 : ".$jia['k']."<br>";
echo "明文 : ".$jie;
?>
无聊看了PHP的加解密
最新推荐文章于 2024-09-13 18:48:07 发布