日期:2014-05-17 浏览次数:20600 次
<?php
function encryptCookie($value){
if(!$value){return false;}
$key = 'paxospass1234!';
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);
return array(trim(base64_encode($crypttext)),$iv); //encode for cookie
}
function decryptCookie($value,$iv){
if(!$value){return false;}
$value = base64_decode($value);
$key = 'paxospass1234!';
$text = $value;
// $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
// $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);
return $decrypttext;
}
$str="this is for encry";
$s=encryptCookie($str);
echo decryptCookie($s[0],$s[1]);
?>
<?php
function encryptCookie($value){
if(!$value){return false;}
$key = 'paxospass1234!';
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$text, MCRYPT_MODE_CBC, $iv);
$ivencode = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$crypttext,$iv,MCRYPT_MODE_ECB);//其实直接拼接就可以,这里再做一次加密
return base64_encode($crypttext.$ivencode); //encode for cookie,iv拼接到串尾
}
function decryptCookie($value){
if(!$value){return false;}
$value = base64_decode($value);
$rvalue = substr($value,0,-32);//原加密串
$iv = substr($value,-32);//iv
$iv = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$rvalue,$iv,MCRYPT_MODE_ECB);//解密iv
$key = 'paxospass1234!';
$text = $rvalue;
// $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
// $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);
return $decrypttext;
}
$str="this is for encry";
$s=encryptCookie($str);
echo "encrypt:".$s."<br/>";
echo "decrypt:".decryptCookie($s);
?>