PHP AES解密

时间:2010-07-13 10:31:00

标签: php encryption aes mcrypt rijndael

我真的很难解密PHP中给定的密文,我希望你们中的一个能够找到我在这个问题上的错误。

所以这是我正在尝试解码的字符串

Wq+J2IlE7Cug1gJNiwy1beIcFggGhn+gZHkTCQ4J/DR3OY45OMs4RXN850xbfAmy

我知道它用AES / CBC / PKCS5Padding加密,带有IV

2ZqVSHjqn3kMump0rvd8AA==

我会根据要求给你发电子邮件。

public static function aes128cbcDecrypt($key, $encrypted_text, $iv) 
{
  $td = mcrypt_module_open(MCRYPT_RIJNDAEL_192, '', MCRYPT_MODE_CBC, '');
  mcrypt_generic_init($td, $key, $iv);
  $decrypted = mdecrypt_generic($td, $encrypted_text);
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return trim($decrypted);
}

当我尝试运行时,我得到完全的胡言乱语

ã5‡³/.3p›¤ý°$² —ïÅ»<9 ‘m ê|Ÿ.ÂYº|Šû^w¬¾‚=l“½·F›VársT~ê H�ÿfß]7ñH

同样,当我加密已知的纯文本时,我会得到一堆乱码而不是ascii字符串。

† —4†º¢V�Öæƒ{ Zsöœl ò°Þ 
PegöE&£á=Ǻ܀

你们有没有想到我出错的地方?

1 个答案:

答案 0 :(得分:5)

也许是一个愚蠢的问题,但是如果IV在使用之前不能进行base64解码吗?

$realIV = base64_decode($iv);