質問

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

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

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

または、手動で16の倍数にパイトをパディングし、復号化するときにそれらを削除する必要がありますか?以下は、コードの短縮サンプルです。

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

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

事前に感謝します、 Ciar <!>#225; n

役に立ちましたか?

解決

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top