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?