Heim >Backend-Entwicklung >Golang >Warum erzeugen meine Go- und PyCrypto-AES-CFB-Implementierungen unterschiedliche Chiffretexte?

Warum erzeugen meine Go- und PyCrypto-AES-CFB-Implementierungen unterschiedliche Chiffretexte?

Barbara Streisand
Barbara StreisandOriginal
2024-12-11 14:55:10527Durchsuche

Why Do My Go and PyCrypto AES-CFB Implementations Produce Different Ciphertexts?

Unterschiedliche Ergebnisse in Go und Pycrypto mit AES-CFB

Diese Frage ergibt sich aus der Notwendigkeit, eine Go-Anwendung in eine bestehende Python-Codebasis zu integrieren das PyCrypto zur Verschlüsselung nutzt. Das Problem tritt auf, wenn die Python- und Go-Implementierungen der AES-CFB-Verschlüsselung unterschiedliche Chiffretexte erzeugen.

Python-Beispiel:

Go-Beispiel:

In Go verwendet die NewCFBEncrypter-Funktion 16-Bit-Segmente von Standardmäßig verwendet PyCrypto in Python 8-Bit-Segmente (CFB8). Um diese Diskrepanz zu beheben und es Go zu ermöglichen, mit den PyCrypto-Einstellungen verschlüsselten Chiffretext zu entschlüsseln, muss die Go-Implementierung geändert werden, um CFB8 zu unterstützen.

Lösung:

Untersuchungen zeigen, dass Go's Der Quellcode von CFBDecrypter und CFBEncrypter kann problemlos an die Unterstützung von CFB8 angepasst werden. Die Änderung beinhaltet die Änderung der Segmentgröße in den folgenden Zeilen:

Originalcode:

Geänderter Code:

Durch die Implementierung dieser Änderung wird Go CFB8 unterstützen und in der Lage sein, Chiffretext zu entschlüsseln, der mit der Python-Implementierung verschlüsselt wurde Einstellungen.

Das obige ist der detaillierte Inhalt vonWarum erzeugen meine Go- und PyCrypto-AES-CFB-Implementierungen unterschiedliche Chiffretexte?. 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