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?