一般如果使用MD5()和SHA1()等普通加密算法都是单向加密的,而且2个相同的string加密后的结果是一样的~所以现在我找到了一种可以进行双向加密的库,即可以加密后解密得到原值,并保证每个值不同。
使用前保证在php.ini中打开了extension=php_mcrypt.dll
<?php
function encrypt($encrypt,$key){
$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB) , MCRYPT_RAND );
//对信息加密
$passcrypt = mcrypt_encrypt( MCRYPT_DES,$key,$encrypt,MCRYPT_MODE_ECB,$iv );
//对加密信息进行编码
$encode = base64_encode($passcrypt);
return $encode;
}
function decrypt($decrypt,$key){
$decoded = base64_decode($decrypt);
$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB) , MCRYPT_RAND );
//对信息进行解密
$decrypted = mcrypt_decrypt( MCRYPT_DES,$key,$decoded,MCRYPT_MODE_ECB,$iv );
return $decrypted;
}
//for example
$key = "11111";
$content = "xiaozhe";
$encrypted = encrypt($content,$key);
$decrypted = decrypt($encrypted,$key);
//输出
echo "加密后的信息为:".$encrypted."<br/>";
echo "解密后的信息为:".$decrypted."<br/>";
?>
加密后的信息为:VwxvN7UwXZM=
解密后的信息为:xiaozhe