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?