AES Python-Verschlüsselung und Ruby-Verschlüsselung - anderes Verhalten?

8

Von dieser Seite habe ich dieses Code-Snippet:

%Vor%

Wenn ich dieses Array nehme und es zu einem String in Ruby mache und mit der Entschlüsselung fortfahre, tritt ein Fehler auf:

%Vor%

Warum funktioniert das nicht?

    
Danyel 29.10.2013, 14:48
quelle

1 Antwort

10

Das ist verständlicherweise verwirrend - PyCrypto ist hier ein wenig aus den Fugen geraten und mit der üblichen Implementierung gebrochen. Wenn Sie mit dem vertraut sind, wie verschlüsselte Daten normalerweise aussehen sollten, sieht die Python-Ausgabe offensichtlich falsch aus und gibt Ihnen einen Startpunkt. Wenn Sie nicht sind, ist es leicht zu fragen, was zum Teufel schief gelaufen ist und keine Ahnung, wo Sie anfangen sollten.

In einer "normalen" Implementierung wird Padding standardmäßig verwendet und Sie werden (in diesem Fall) mit einer verschlüsselten Ausgabe enden, die 16 Byte länger ist.

Zum Beispiel verschlüsselt mit Ruby, das ist das Ergebnis:

%Vor%

PyCrypto hat aus Gründen, die ich nicht sofort finden kann, entschieden, nur mit ungepackten Daten zu arbeiten . Wenn Sie Daten mit PyCrypto austauschen, sollten Sie andere Bibliotheken entsprechend konfigurieren.

Im Fall von Rubys OpenSSL-Bibliothek stellt das Cipher -Objekt eine padding -Eigenschaft zur Verfügung, die zum Deaktivieren von padding verwendet werden kann:

%Vor%     
colinm 29.10.2013, 16:25
quelle

Tags und Links