分享:PHP可逆加密算法,通过密码加密。
ysbear 2星期前

通过异或位运算加密字符串。

<?php
/**
 * 加密
 * @data 要加密的字符串
 * @key 加密密码
 * @return 返回base64后的加密字符串
 * @如果不需要显示加密后的字符,可把base64去掉
 */
function ensy($data,$key)
{
	$key = md5($key);
	$len = strlen($data);
	$code = '';
	for($i=0;$i<ceil($len/32);$i++)
	{
		for($j=0;$j<32;$j++)
		{
			$p = $i*32+$j;
			if($p < $len){				
				$code .= $data{$p} ^ $key{$j};
			}
		}
	}
	$code = str_replace(array('+','/','='),array('_','$',''),base64_encode($code));
	return $code;
}

/**
 * 解密
 * @code 加密后的字符串
 * @key 加密密码
 * @return 解密后的字符串
 * @如果不需要显示加密后的字符串,可把base64去掉
 */
function desy($code,$key)
{
	$key = md5($key);
	$code = base64_decode(str_replace(array('_','$'),array('+','/'),$code));
	$len = strlen($code);
	$data = '';
	for($i=0;$i<ceil($len/32);$i++)
	{
		for($j=0;$j<32;$j++)
		{
			$p = $i*32+$j;
			if($p < $len){
				$data .= $code{$p} ^ $key{$j};
			}
		}
	}
	return $data;	
}

echo $a = ensy('你好啊','1212');
echo desy($a,'1212');

免费拨打  199-7086-1797
免费拨打  199-7086-1797免费拨打 199-7086-1797
微信二维码
手机二维码
返回顶部
返回顶部返回顶部