1

私はPHPで特定の暗号文を復号化するのに本当に苦労しています。あなたの一人が、私がこれでどこが間違っているのかを見つけられることを願っています。

だからこれは私がデコードしようとしている文字列です

Wq+J2IlE7Cug1gJNiwy1beIcFggGhn+gZHkTCQ4J/DR3OY45OMs4RXN850xbfAmy

私はそれがAES/CBC/PKCS5で暗号化されていることを知っています

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&£á=Ǻ܀

私がどこで間違っているのか、何かアイデアがありますか?

4

1 に答える 1

5

ばかげた質問かもしれませんが、IVを使用する前にbase64でデコードするべきではありませんか?

$realIV = base64_decode($iv);
于 2010-07-13T10:51:07.123 に答える