Heim > Java > javaLernprogramm > Warum sind meine ursprünglich entschlüsselten Bytes in Java AES/CBC falsch?

Warum sind meine ursprünglich entschlüsselten Bytes in Java AES/CBC falsch?

DDD
Freigeben: 2024-11-29 19:17:12
Original
612 Leute haben es durchsucht

Why Are My Initial Decrypted Bytes Incorrect in Java AES/CBC?

Anfangsbytes nach Java AES/CBC-Entschlüsselung falsch

Die Anfangsbytes der entschlüsselten Zeichenfolge im bereitgestellten Java AES/CBC-Entschlüsselungsbeispiel werden angezeigt falsch. Dies kann mehrere Ursachen haben:

1. Fehlender Anfangsvektor (IV):

Um die Entschlüsselung korrekt durchzuführen, müssen Sie denselben IV angeben, der bei der Verschlüsselung verwendet wurde. Im gegebenen Beispiel scheint es, dass der IV vor der Entschlüsselung nicht initialisiert wird, was zu einer falschen Entschlüsselung der ersten Bytes führt.

2. Falscher Initialisierungsvektor (IV):

Der IV muss mit dem bei der Verschlüsselung verwendeten IV übereinstimmen. Wenn der IV zufällig generiert wird, sollte es sich um denselben Zufallswert handeln, der zum Verschlüsseln der Daten verwendet wurde.

3. Base64-Kodierung/Dekodierung:

Stellen Sie sicher, dass die verschlüsselten Daten vor der Entschlüsselung Base64-kodiert sind. Das angegebene Beispiel enthält keine Base64-Kodierung, was zu einer falschen Entschlüsselung führen kann.

4. Zeichensatz:

Der für die Kodierung/Dekodierung verwendete Standardzeichensatz ist UTF-8. Bestätigen Sie, dass bei der Ver- und Entschlüsselung derselbe Zeichensatz verwendet wurde.

5. Falscher Schlüssel:

Der Verschlüsselungsschlüssel muss mit dem für die Entschlüsselung verwendeten Schlüssel übereinstimmen. Stellen Sie sicher, dass sowohl beim Verschlüsselungs- als auch beim Entschlüsselungsprozess der richtige Schlüssel verwendet wird.

Um diese Probleme zu beheben und die Daten korrekt zu entschlüsseln, führen Sie die folgenden Schritte aus:

  • Initialisieren Sie den IV mit der neuen IvParameterSpec (aesKey.getEncoded()) vor der Entschlüsselung.
  • Stellen Sie sicher, dass die verschlüsselten Daten zuvor Base64-codiert wurden Entschlüsselung.
  • Verwenden Sie denselben Zeichensatz (UTF-8) für die Verschlüsselung und Entschlüsselung.
  • Bestätigen Sie, dass der richtige Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung verwendet wird.

Das obige ist der detaillierte Inhalt vonWarum sind meine ursprünglich entschlüsselten Bytes in Java AES/CBC falsch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage