Comprimento do vetor de inicialização no AES

Eu usei o AES com AES / CBC / PKCS5Padding com as seguintes seções de código de criptografia e descriptografia no Android:

<code>cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(IV1));
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(IV2));
</code>

onde IV1 e IV2 são vetores de inicialização de 16 bytes gerados aleatoriamente. Eu fiz isso para verificar se os textos originais e descriptografados seriam diferentes usando diferentes IVs em partes de criptografia e descriptografia. Isso faz com que os bytes do texto descriptografado sejam os mesmos do texto original após os primeiros 16 bytes. Por exemplo, se o texto original é:

<code>Enter your message here...
</code>

O texto descriptografado é:

<code>*****************ge here... 
</code>

onde * denota um byte descriptografado erroneamente como deveria ser, já que IV1 e IV2 são diferentes.

Minha pergunta é: O que fazer para criptografar e descriptografar o texto com comprimento maior que 16 bytes usando o AES com vetor de inicialização?

questionAnswers(0)

yourAnswerToTheQuestion