Długość wektora inicjalizacji w AES

Użyłem AES z AES / CBC / PKCS5Padding z następującymi sekcjami kodu szyfrowania i deszyfrowania w Androidzie:

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

gdzie IV1 i IV2 są losowo generowanymi 16-bajtowymi wektorami inicjalizacyjnymi. Zrobiłem to, aby sprawdzić, czy oryginalne i odszyfrowane teksty będą różne, używając różnych IV w stronach szyfrowania i deszyfrowania. Prowadzi to do tego, że bajty odszyfrowanego tekstu są takie same jak pierwotnego tekstu po pierwszych 16 bajtach. Na przykład jeśli oryginalny tekst to:

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

Odszyfrowany tekst to:

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

gdzie * oznacza błędnie odszyfrowany bajt, tak jak powinien być, ponieważ IV1 i IV2 są różne.

Moje pytanie brzmi: Co zrobić, aby zaszyfrować i odszyfrować tekst o długości większej niż 16 bajtów przy użyciu AES z wektorem inicjującym?

questionAnswers(0)

yourAnswerToTheQuestion