PHP简单加密解密算法

简单加密算法,对文本进行加密解密

<?php  
//加密函数  
function encrypt($data,$key) {
	$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	$nh = rand(0,64);
	$ch = $chars[$nh];
	$mdKey = md5($key.$ch);
	$mdKey = substr($mdKey,$nh%8, $nh%8+7);
	$data= base64_encode($data);
	$tmp = '';
	$i=0;
	$j=0;
	$k = 0;
	for ($i=0; $i<strlen($data); $i++) {
		$k = $k == strlen($mdKey) ? 0 : $k;
		$j = ($nh+strpos($chars,$data[$i])+ord($mdKey[$k++]))%64;
		$tmp .= $chars[$j];
	}
	return urlencode($ch.$tmp);
}
//解密函数  
function decrypt($data,$key) {
	$txt = urldecode($data);
	$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	$ch = $txt[0];
	$nh = strpos($chars,$ch);
	$mdKey = md5($key.$ch);
	$mdKey = substr($mdKey,$nh%8, $nh%8+7);
	$txt = substr($txt,1);
	$tmp = '';
	$i=0;
	$j=0;
	$k = 0;
	for ($i=0; $i<strlen($txt); $i++) {
		$k = $k == strlen($mdKey) ? 0 : $k;
		$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);
		while ($j<0) $j+=64;
		$tmp .= $chars[$j];
	}
	return base64_decode($tmp);
}

$text = '123456abc';
$key ='szfx';
$encrypt = encrypt($text,$key);

echo $encrypt;
echo '<br>';
echo decrypt($encrypt,$key);

输出

aMfDBJTnzUWVe
123456abc

 

本文采用 CC BY-NC-SA 3.0 Unported 许可,转载请以超链接注明出处。
原文地址:PHP简单加密解密算法 作者:松鼠小
暂无评论
本文评论已关闭
上一篇
下一篇