6

ブロックサイズが 16 バイトの AES 暗号を使用しています。

16 バイトの文字列を暗号化しようとしても問題はありませんが、16 の倍数ではない他の長さでは例外がスローされます。

3-DES では、パディング タイプをアルゴリズムの一部として指定でき、余分な作業なしで処理されることは知っています (DES/CBC/PKCS5Padding など) が、AES でこれを指定する方法はありますか?

それとも、手動で pytes を 16 の倍数にパディングしてから、復号化するときに削除する必要がありますか? 簡略化されたコード サンプルを次に示します。

encrypt = Cipher.getInstance("AES", provider);
encrypt.init(Cipher.ENCRYPT_MODE, key) ;
byte[] encrypted = encrypt.doFinal(plainTxt.getBytes()) ;

すべての返信に感謝します。

前もって感謝します, シアラン

4

1 に答える 1

5

AES とまったく同じように動作するはずです。つまり、パディング モードを暗号とともに指定する必要があります。どのパディング モードが実装されているかはプロバイダーによって異なり、そのドキュメントで説明する必要があります。

JCE のドキュメントによると: http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html#AppA PKCS5Padding などの標準パディング モードは常にサポートされている必要があります (少なくとも、それが方法です)。と解釈しています)。

于 2008-12-05T01:13:05.690 に答える