Initialisierungsvektorlänge in AES

Ich habe AES mit AES / CBC / PKCS5Padding mit den folgenden Abschnitten für Verschlüsselungs- und Entschlüsselungscodes in Android verwendet:

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

wobei IV1 und IV2 zufällig erzeugte 16-Byte-Initialisierungsvektoren sind. Ich habe dies getan, um zu überprüfen, ob der ursprüngliche und der entschlüsselte Text unterschiedlich sind, wobei unterschiedliche IVs bei den Verschlüsselungs- und Entschlüsselungspartnern verwendet wurden. Dies führt dazu, dass die Bytes des entschlüsselten Texts nach den ersten 16 Bytes mit denen des Originaltexts übereinstimmen. Zum Beispiel, wenn der ursprüngliche Text ist:

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

Der entschlüsselte Text lautet:

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

wobei * ein falsch entschlüsseltes Byte bezeichnet, wie es sein sollte, da IV1 und IV2 unterschiedlich sind.

Meine Frage lautet: Was ist zu tun, um Text mit einer Länge von mehr als 16 Bytes mit AES und einem Initialisierungsvektor zu verschlüsseln und zu entschlüsseln?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage