无聊看了PHP的加解密

</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; 
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值