English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie lernen, den Hash-Wert einer Datei zu finden und anzuzeigen.
Um diesen Beispiel zu verstehen, sollten Sie die folgenden Kenntnisse habenPython-ProgrammierungThema:
Hashfunktionen erhalten eine beliebige Anzahl von Daten und geben eine Bitzeichenkette festen Längen zurück. Der Ausgang der Funktion wird als Digest-Nachricht bezeichnet.
Sie werden weit verbreitet in der Kryptographie zur Authentifizierung verwendet. Es gibt viele Hashfunktionen, wie z.B. MD5zu erfahren-1u.ä. Bitte konsultieren Sie diese Seite, um mehr überHashfunktionen in der KryptographieMehr Informationen.
In diesem Beispiel erläutern wir, wie Dateien gehasht werden. Wir verwenden SHA-1Hash-Algorithmus. SHA-1Die Länge der Zusammenfassung beträgt160-Bit.
Wir geben nicht alle Daten aus der Datei auf einmal an, da einige Dateien sehr groß sind und nicht alle auf einmal in den Speicher passen. Das Teilen der Datei in Blöcke verbessert die Effizienz des Prozessespeichers.
# Python-Programm, um die SHA eines Dateis zu finden1Nachrichtenzusammenfassung # Modul hashlib importieren import hashlib def hash_file(filename): """Diese Funktion gibt SHA-1Hash übergeben dem seine Datei """ # Ein Hash-Objekt erstellen h = hashlib.sha1) # Datei im Binärbetrieb öffnen with open(filename, 'rb') as file: # Bis zum Ende der Datei durchlaufen chunk = 0 while chunk != b'' # Nur einmal lesen1024Bytes chunk = file.read(1024) h.update(chunk) # Rückgabe der hexadezimalen Darstellung der Zusammenfassung return h.hexdigest() message = hash_file("track"1.mp3") print(message)
Ausgabeergebnis
633d7356947eec543c50b76a1852f92427f4dca9
In diesem Programm öffnen wir die Datei im Binärbetrieb. Hashfunktionen sind im Modul hashlib verfügbar. Wir verwenden einen while-Schleife bis zum Ende der Datei. Wenn wir am Ende ankommen, erhalten wir ein leeres Byte-Objekt.
Bei jedem Durchlauf lesen wir nur1024Bytes (dieser Wert kann nach Bedarf geändert werden) und aktualisieren Sie den Hash-Algorithmus.
Schließlich verwenden wir die Methode hexdigest() zur Rückgabe der Zusammenfassung in der hexadezimalen Darstellung.