您的位置:首页 > 其它

encrypt decrypt 加密解密完整实例(密文可用密钥解密)

2017-09-07 21:32 525 查看
<?php
error_reporting(0);
header("content-Type: text/html; charset=utf-8");//输出编码

/*
*功能:对字符串进行加密处理
*参数一:需要加密的内容
*参数二:密钥
*/
function passport_encrypt($str,$key){ //加密函数
srand((double)microtime() * 1000000);
$encrypt_key=md5(rand(0, 32000));
$ctr=0;
$tmp='';
for($i=0;$i<strlen($str);$i++){
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp,$key));
}

/*
*功能:对字符串进行解密处理
*参数一:需要解密的密文
*参数二:密钥
*/
function passport_decrypt($str,$key){ //解密函数
$str=passport_key(base64_decode($str),$key);
$tmp='';
for($i=0;$i<strlen($str);$i++){
$md5=$str[$i];
$tmp.=$str[++$i] ^ $md5;
}
return $tmp;
}

/*
*辅助函数
*/
function passport_key($str,$encrypt_key){
$encrypt_key=md5($encrypt_key);
$ctr=0;
$tmp='';
for($i=0;$i<strlen($str);$i++){
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$str[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}

$tps=$_GET["t"];

if (empty($_POST["name"])) {
$str="你要加密的内容";
} else {
$str=$_POST["name"];//'Q253252545Q'
}

if (empty($_POST["mimi"])) {
$key = "q253252545q";
} else {
$key=$_POST["mimi"];
}

if ($tps!="Jie"){
$rez=passport_encrypt($str,$key); //加密
$tpt="Jie";
$tpz="解";
$tpx="加";
}else{
$rez=passport_decrypt($str,$key); //解密
$tpt="Jia";
$tpz="加";
$tpx="解";
}

echo "<div style='border:1px solid #ccc;padding:18px;'>";
echo " 原 文:{$str}<br>密 钥:{$key}<br>$tpx 密:{$rez}";
echo "</div>";
echo "<form action='?t=$tpt' method='post' style='border:1px solid #ccc;padding:18px;' >\r\n".
"<p>密钥:<input name='mimi' style='width:480px' value='$key'>\r\n</p>".
"<p>内容:<input name='name' style='width:480px' value='$rez'>\r\n</p>".
"<input type='submit' name='Submit' value=' $tpz 密 '>\r\n".
"</form>";
?>


encrypt decrypt 加密解密完整实例(密文可用密钥解密),可以用于加密通讯哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐