Heim >Java >javaLernprogramm >Warum erzeugt meine Java AES/CBC-Entschlüsselung beschädigten Klartext?

Warum erzeugt meine Java AES/CBC-Entschlüsselung beschädigten Klartext?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 11:43:09691Durchsuche

Why Does My Java AES/CBC Decryption Produce Corrupted Plaintext?

Entschlüsselter Chiffretext enthält fehlerhafte Anfangsbytes in Java AES/CBC

Im bereitgestellten Code nach der Entschlüsselung mit AES/CBC mit PKCS5-Auffüllung der Anfangsteil des Klartextes Scheint beschädigt zu sein.

Ursache

Das Problem liegt an es wird versäumt, die verschlüsselten und entschlüsselten Bytes in Zeichenfolgen umzuwandeln. In der Entschlüsselungsschleife wird die Ausgabe der Chiffre direkt in den Ausgabestream geschrieben. Dadurch werden die ersten Bytes des Klartextes, die die Auffüllinformationen enthalten, fälschlicherweise als Teil der Nachricht interpretiert.

Lösung

Um dieses Problem zu lösen, konvertieren Sie den Chiffretext und den Klartext in Zeichenfolgen mit geeigneten Zeichenkodierungen. Dadurch wird sichergestellt, dass die Auffüllung korrekt gehandhabt wird und der Klartext korrekt angezeigt wird.

Verbessertes Codebeispiel

// Before encryption, encode the plaintext as a string
byte[] plaintextBytes = "Hello there. How are you? Have a nice day.".getBytes(StandardCharsets.UTF_8);
// ... encrypt and decrypt as before ...

// Convert the decrypted bytes to a string
String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
System.out.println("Decrypted text: " + decryptedText);

Das obige ist der detaillierte Inhalt vonWarum erzeugt meine Java AES/CBC-Entschlüsselung beschädigten Klartext?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn