2

Android で次の暗号化および復号化コード セクションを使用して AES/CBC/PKCS5Padding で AES を使用しました。

cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(IV1));
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(IV2));

IV1 と IV2 は、ランダムに生成された 16 バイトの初期化ベクトルです。暗号化側と復号化側で異なる IV を使用して、元のテキストと復号化されたテキストが異なるかどうかを確認するためにこれを行いました。これにより、復号化されたテキストのバイト数は、最初の 16 バイト以降は元のテキストと同じになります。たとえば、元のテキストが次の場合:

Enter your message here...

復号化されたテキストは次のとおりです。

*****************ge here... 

ここで * は、IV1 と IV2 が異なるため、誤って復号化されたバイトを示します。

私の質問は: AES と初期化ベクトルを使用して、長さが 16 バイトを超えるテキストを暗号化および復号化するにはどうすればよいですか?

4

0 に答える 0