Home >Backend Development >PHP Tutorial >PHP encryption and decryption example sharing with key_PHP tutorial

PHP encryption and decryption example sharing with key_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:39:50739browse

复制代码 代码如下:

$id = "http://www.jb51.net";
$token = encrypt($id, 'E', 'jb51');
echo '加密:'.encrypt($id, 'E', 'jb51');
echo '
';
echo '解密:'.encrypt($token, 'D', 'jb51');

/***************************************************** *****************
Function name: encrypt
Function function: Encrypt and decrypt string
Usage:
Encryption: encrypt('str' ,'E','qingdou');
Decryption: encrypt('Encrypted string','D','qingdou');
Parameter description:
$string : Encryption and decryption required String
$operation: Determine whether to encrypt or decrypt: E: Encryption D: Decryption
$key: Encrypted key (key);
********** *************************************************** *******/
function encrypt($string,$operation,$key='')
{
$src  = array("/","+","=");
$dist = array("_a","_b","_c");
if($operation=='D'){$string  = str_replace($dist,$src,$string);}
$key=md5($key);
$key_length=strlen($key);
$string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;
$string_length=strlen($string);
$rndkey=$box=array();
$result='';
for($i=0;$i<=255;$i++)
{
$rndkey[$i]=ord($key[$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,8)==substr(md5(substr($result,8).$key),0,8))
{
return substr($result,8);
}
else
{
return'';
}
}
else
{
$rdate  = str_replace('=','',base64_encode($result));
$rdate  = str_replace($src,$dist,$rdate);
return $rdate;
}
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/728101.htmlTechArticle复制代码 代码如下: ?php $id = "http://www.jb51.net"; $token = encrypt($id, 'E', 'jb51'); echo '加密:'.encrypt($id, 'E', 'jb51'); echo 'br /'; echo '解密:'.encrypt($to...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn