ホームページ >Java >&#&チュートリアル >追加設定を行わない場合の Java のデフォルトの暗号化/AES 動作は何ですか?
Java のデフォルトの暗号化/AES 動作が解明されました
Java の暗号化 API を使用する場合、AES 暗号化のデフォルト設定の動作は、少し謎めいた。何が起こっているのかをさらに詳しく説明します:
質問: 以下のデフォルトの Java 暗号化動作は何ですか:
<code class="java">SecretKeySpec localSecretKeySpec = new SecretKeySpec(arrayOfByte, "AES"); Cipher localCipher = Cipher.getInstance("AES");</code>
具体的には、これらのクラスはどのように生成しますか初期化ベクトル (IV) と、さらに明確に説明せずに「AES」が指定された場合のデフォルトの暗号化モードは何ですか?
回答:
Oracle JDK 7 の場合、デフォルトはAES 暗号化に使用される暗号は AES/ECB/PKCS5Padding です。驚くべきことに、この情報は Java セキュリティのドキュメントに明示的に記載されていません。代わりに、次のことを解明するためにいくつかの実践的なテストが必要です。
<code class="java">Cipher cipher = Cipher.getInstance("AES"); System.out.println(cipher.getAlgorithm()); // Outputs: AES/ECB/PKCS5Padding</code>
このデフォルト設定では:
基本的なシナリオではこのデフォルトの動作で十分かもしれませんが、IV 生成がないこととデータ漏洩の可能性があるため、一般にほとんどのアプリケーションにとって安全であるとは考えられていないことに注意することが重要です。 ECBモード。これらのセキュリティ上の懸念に対処するには、特定の要件に合わせた暗号化モードと IV 生成戦略を明示的に定義することをお勧めします。
以上が追加設定を行わない場合の Java のデフォルトの暗号化/AES 動作は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。