1
4

2 回答 2

1

您应该在解密之前重新初始化,即再次调用 crypt_generic_init。此外,加密完成后,您应该调用 mcrypt_generic_deinit。

于 2011-01-11T18:46:10.387 回答
0

这只是一个疯狂的猜测,但由于您使用的是 CBC 模式,您可能需要在解密之前重置 iv。

$td = \mcrypt_module_open(\MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
$key = '12345678901234561234567890123456';
$iv =  '12345678901234567890123456789012';

\mcrypt_generic_init($td, $key, $iv);
$encrypted = \mcrypt_generic($td, "Testing");

\mcrypt_generic_init($td, $key, $iv);
echo \mdecrypt_generic($td, $encrypted);
于 2011-01-11T18:46:11.807 回答