Python-Programm zum Suchen von Hash of File

In diesem Artikel lernen Sie, den Hash einer Datei zu finden und anzuzeigen.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Python-Programmierthemen kennen:

  • Python-Funktionen
  • Benutzerdefinierte Python-Funktionen
  • Python File I / O.

Hash-Funktionen nehmen eine beliebige Datenmenge auf und geben eine Bitfolge fester Länge zurück. Die Ausgabe der Funktion wird als Digest-Nachricht bezeichnet.

Sie werden in der Kryptographie häufig zu Authentifizierungszwecken verwendet. Es gibt viele Hashing-Funktionen wie MD5, SHA-1 usw. Auf dieser Seite erfahren Sie mehr über Hash-Funktionen in der Kryptographie.

In diesem Beispiel wird veranschaulicht, wie eine Datei gehasht wird. Wir werden den SHA-1-Hashing-Algorithmus verwenden. Der Digest von SHA-1 ist 160 Bit lang.

Wir füttern die Daten nicht alle auf einmal aus der Datei, da einige Dateien sehr groß sind, um auf einmal in den Speicher zu passen. Durch das Aufteilen der Datei in kleine Teile wird der Prozessspeicher effizienter.

Quellcode zum Finden von Hash

 # Python rogram to find the SHA-1 message digest of a file # importing the hashlib module import hashlib def hash_file(filename): """"This function returns the SHA-1 hash of the file passed into it""" # make a hash object h = hashlib.sha1() # open file for reading in binary mode with open(filename,'rb') as file: # loop till the end of the file chunk = 0 while chunk != b'': # read only 1024 bytes at a time chunk = file.read(1024) h.update(chunk) # return the hex representation of digest return h.hexdigest() message = hash_file("track1.mp3") print(message) 

Ausgabe

 633d7356947eec543c50b76a1852f92427f4dca9 

In diesem Programm öffnen wir die Datei im Binärmodus. Hash-Funktionen sind im hashlibModul verfügbar . Wir schleifen bis zum Ende der Datei mit einer whileSchleife. Am Ende erhalten wir ein leeres Byte-Objekt.

In jeder Iteration lesen wir nur 1024 Bytes (dieser Wert kann nach unseren Wünschen geändert werden) aus der Datei und aktualisieren die Hashing-Funktion.

Schließlich geben wir die Digest-Nachricht in hexadezimaler Darstellung mit der hexdigest()Methode zurück.

Interessante Beiträge...