0

可能重复:
PHP 中的双向加密

我需要一个用密码加密变量的 PHP 脚本。我不是说像 md5($var); 这样的哈希值。或 sha1($var);

我需要一个可以制作(例如) md5($var); 的脚本 哈希但也从 md5($var); 有用的字符串。

期待喜欢

$password = "SomePassword"; 
$data = "TheVerySecretString";
$encrypted = TheEncyptionFunctionINeed($password, $data); // Output some useless strings
$decrypted = TheDecryptionFunctionINeed($password, $data); // Output: "TheVerySecretString"
4

2 回答 2

3

PHP中的双向加密

抱歉几年后打开它,但我认为它很重要,因为它在顶级搜索排名中......

PHP 5.3 引入了一种非常易于使用的新加密方法。

它是 openssl_encrypt 和 openssl_decrypt ......这里没有很好的记录,所以这里有一个简单的例子......

$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC";  // AES is used by the U.S. gov't to encrypt top secret documents.
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";

//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);

//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);

//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
于 2013-02-04T16:49:07.483 回答
0

这里有2个功能:

函数加密数据($值){
   $key = "最高机密密钥";
   $文本= $值;
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
   返回$密文;
}

函数解密数据($值){
   $key = "最高机密密钥";
   $crypttext = $值;
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $crypttext, MCRYPT_MODE_ECB, $iv);
   返回修剪($解密文本);
}
?>

检查功能手册: mcrypt_encrypt 和 mcrypt_decrypt

于 2013-02-04T16:51:15.063 回答