Inicialización del vector de longitud en AES.

Usé AES con AES / CBC / PKCS5Padding con las siguientes secciones de cifrado y descifrado en Android:

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

donde IV1 y IV2 son vectores de inicialización de 16 bytes generados aleatoriamente. Hice esto para verificar si los textos originales y descifrados serán diferentes utilizando diferentes IV en las partes de cifrado y descifrado. Esto hace que los bytes del texto descifrado sean los mismos que los del texto original después de los primeros 16 bytes. Por ejemplo si el texto original es:

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

El texto descifrado es:

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

donde * denota un byte descifrado erróneamente como debería ser, ya que IV1 y IV2 son diferentes.

Mi pregunta es: ¿Qué hacer para cifrar y descifrar texto con una longitud superior a 16 bytes utilizando AES con el vector de inicialización?

Respuestas a la pregunta(0)

Su respuesta a la pregunta