0

我有下面的加密代码,但问题是它没有按照要求解密数据

$salt ='whatever_you_want';

$en= simple_encrypt('data');
echo simple_decrypt($en);
function simple_encrypt($text)
{
    global $salt;
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_CBC, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_RAND))));
}

function simple_decrypt($text)
{
    global $salt;
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_CBC, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_RAND)));
}

问题是它加密并且每次它生成一个新的加密文本,因为我希望它发生但解密没有发生

我得到这样的东西

%B…*¥   Þ‚á+ËU:L|(øŽ«úÐ9ÇvÉêÿ¿Ïg

任何见解将不胜感激伙计们:)

4

1 回答 1

0

解密时,您需要使用与加密时相同的 IV 和密钥。

您的加密函数需要返回 IV 以及加密数据。然后应该将该 IV 与数据和密钥一起发送到解密函数。

于 2013-05-15T18:56:04.323 回答