Расшифровка PHP AES - PullRequest
       38

Расшифровка PHP AES

1 голос
/ 13 июля 2010

Я действительно изо всех сил пытаюсь расшифровать данный зашифрованный текст в 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 Ответ

5 голосов
/ 13 июля 2010

Может быть, глупый вопрос, но не должен ли IV быть декодирован base64 перед его использованием?

$realIV = base64_decode($iv);
...