Вопрос по initialization-vector, android, aes – Длина вектора инициализации в AES

2

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

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

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

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

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

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

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

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

Ваш Ответ

0   ответов

Похожие вопросы