Длина вектора инициализации в AES

Я использовал AES с AES/CBC/PKCS5Padding со следующими разделами кода шифрования и дешифрования в Android:

cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(IV1));
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(IV2));

где IV1 и IV2 - случайно сгенерированные 16-байтовые векторы инициализации. Я сделал это, чтобы проверить, будут ли исходные и дешифрованные тексты отличаться друг от друга, используя разные IV для сторон шифрования и дешифрования. Это приводит к тому, что байты расшифрованного текста будут такими же, как байты исходного текста после первых 16 байтов. Например, если оригинальный текст:

Enter your message here...

Расшифрованный текст:

*****************ge here... 

где * обозначает неправильно дешифрованный байт, как и должно быть, поскольку IV1 и IV2 различны.

Мой вопрос: что делать, чтобы зашифровать и расшифровать текст длиной более 16 байтов, используя AES с вектором инициализации?

0 ответов

Другие вопросы по тегам