双向加密算法

一般如果使用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

你可能感兴趣的:(算法)