ホームページ >Java >&#&チュートリアル >Java AES/CBC 復号化後、最初の復号化バイトが正しくないのはなぜですか?
Java AES/CBC 復号化後の初期バイトが正しくありません
提供された Java コードは、AES/CBC 暗号化と復号化を実行しようとします。ただし、復号化された文字列の最初のバイトは破損しています。この問題を解決するには、問題の潜在的な原因を考慮することが重要です。
問題の核心は、復号化暗号の誤った初期化から発生します。具体的には、コードは復号化暗号の初期化ベクトル (IV) を設定できません。 IV はブロック暗号の初期化に使用される重要なパラメータであり、これがないと復号化が正しく行われない可能性があります。
これを修正するには、復号化暗号を初期化する前にコードで明示的に IV を設定する必要があります。
IvParameterSpec ivParameterSpec = new IvParameterSpec(aesKey.getEncoded()); decryptCipher.init(Cipher.DECRYPT_MODE, aesKey, ivParameterSpec);
IV パラメータを設定することにより、コードは復号化プロセスが正しく実行されることを保証し、結果として元の平文を正確に復元します。最初のバイトが破損しています。
以上がJava AES/CBC 復号化後、最初の復号化バイトが正しくないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。