Eigentlich ist die Frage trivial, ich finde aber nirgendwo ein "Rezept":
Ich möchte beliebige Dateien byteweise auslesen mit Python (2.x).
Der Sinn dahinter ist, dass ich die Bytes via XOR verschlüsseln und in einer
neuen Datei abspeichern will.
Wie gesagt, dazu habe ich nichts gefunden.
Hat jemand einen Tipp, evtl. auch zum XOR zwischen zwei Hex-Bytes? (XOR mit ^ funktioniert nur dezimal)?
Auslesen von Dateien
http://docs.python.org/library/stdtypes.html#file.readswoosh hat geschrieben:Eigentlich ist die Frage trivial, ich finde aber nirgendwo ein "Rezept":
Ich möchte beliebige Dateien byteweise auslesen mit Python (2.x).
@swoosh: XOR mit ``^`` funktioniert nur mit *Zahlen*. Es gibt keine dezimalen oder hexadezimalen Zahlen, sondern nur dezimale oder hexadezimale *Darstellungen* von Zahlen.
@swoosh: Für das Umwandeln von Bytes in "Zahlwerte" eignet sich ord(). Auf diese Ausgabe kannst du dann natürlich immer noch eine XOR-Operation mit einem hexadezimal angegebenen Wert durchführen lassen:
Und für's Schreiben in die Datei, was ja vermutlich auch wieder in hexadezimaler Schreibweise geschehen soll, kannst du dir am Besten mittels String-Formatting behelfen:
Code: Alles auswählen
>>> ord('a') ^ 0xF00
3937
Code: Alles auswählen
>>> '{:X}'.format(ord('a') ^ 0xF00)
'F61'