我有以下加密代码,但问题是它没有根据需要解密数据
$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
任何见解都会受到赞赏。)
答案 0 :(得分:0)
解密时,您需要使用与加密时相同的IV和密钥。
您的加密功能需要返回IV以及加密数据。然后应该将IV与数据和密钥一起发送到解密函数。