您的位置:首页 > 其它

xor与base64结合的加密解密函数

2017-04-16 23:26 489 查看
<?php
//xor与base64加密函数
header('Content-type:text/html;charset=utf-8');
function encrypt($str,$key){

$key=md5($key);
$k=md5(rand(0,100));//相当于动态密钥
$k=substr($k,0,8);
$tmp="";
for($i=0;$i<strlen($str);$i++){
$tmp.=substr($str,$i,1) ^ substr($key,$i,1);
}
return base64_encode($k.$tmp);
}

//xor与base64解密函数
function decrypt($str,$key){

$len=strlen($str);
$key=md5($key);
$str=base64_decode($str);
$str=substr($str,8,$len-8);
$tmp="";
for($i=0;$i<strlen($str);$i++){
$tmp.=substr($str,$i,1) ^ substr($key,$i,1);
}
return $tmp;
}

$str = 'danny'; //要加密的字符串
$key = 'zoe'; //盐值
$encrypt_str = encrypt($str,$key);
$decrypt_str = decrypt($encrypt_str,$key);

echo '加密前的字符串是:'.$str.'<br>';  //加密前的字符串是:danny
echo '加密后的字符串是:'.$encrypt_str.'<br>';  //加密后的字符串是:YTY4NGVjZWUHWVYPTw==(随机变化)
echo '解密后的字符串是:'.$decrypt_str; //解密后的字符串是:danny
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息