<?php
/**
* 加解密算法
* E加 * D解
*/
header("content-type:text/html;charset=utf-8");
function Crypto($string,$operation,$key='www.sjyme.cn'){
$keys=md5(sha1(md5($key)));
$key_length=strlen($keys);
$string=$operation=='D'?base64_decode($string):substr(md5($string.$keys),0,23).$string;
$string_length=strlen($string);
$rndkey=$box=array();
$result='';
for($i=0;$i<=255;$i++){
$rndkey[$i]=ord($keys[$i%$key_length]);
$box[$i]=$i;
}
for($j=$i=0;$i<256;$i++){
$j=($j+$box[$i]+$rndkey[$i])%256;
$tmp=$box[$i];
$box[$i]=$box[$j];
$box[$j]=$tmp;
}
for($a=$j=$i=0;$i<$string_length;$i++){
$a=($a+1)%256;
$j=($j+$box[$a])%256;
$tmp=$box[$a];
$box[$a]=$box[$j];
$box[$j]=$tmp;
$result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));
}
if($operation=='D'){
if(substr($result,0,23)==substr(md5(substr($result,23).$keys),0,23)){
return substr($result,23);
}else{
return'';
}
}else{
return str_replace('=','',base64_encode($result));
}
}
//用法
if( $str =$_POST['jiami']){
$key = 'www.fyunw.com';
$token = encrypt($str, 'E', $key);
echo '加密:'.encrypt($str, 'E', $key);
}
if( $str =$_POST['jiemi']){
$key = 'www.fyunw.com';
$token = encrypt($str, 'E', $key);
echo '解密:'.encrypt($str, 'D', $key);
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
加密
<label>
<input name="jiami" type="text" id="image" /> <input type="submit" name="Submit" value="加密" />
</label>
</form>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
解密
<label>
<input name="jiemi" type="text" id="image" /> <input type="submit" name="Submit" value="解密" />
</label>
</form>
</body>
</html>