Python Hashlib MD5

Python Hashlib MD5
Hash -Funktionen sind Methoden/Funktionen, mit denen Daten unterschiedlicher Größe als Eingabe- und Ausgabemeldungs ​​-Hash oder Digest akzeptiert werden können. Die Datenintegrität kann mit diesem Wert bewertet werden. Eine kryptografische Hash -Funktion umfasst den MD5 -Hash. Jedem Datenpaket wird ein Hash -Wert hinzugefügt, bevor er über das Internet gesendet oder übertragen wird. Der Server berechnet den Hash, wenn die Daten empfangen werden, und überprüft/überprüft ihn mit dem verknüpften/angehängten Hash -Wert. Datenpakete werden nur akzeptiert, wenn der übertragene Hash -Wert und der beigefügte Hash -Wert gleich sind. Andernfalls zeigt dies an, dass sich die Daten geändert haben. Diese Änderung kann durch Datenverlust, Datenmanipulationen, Rauschfehler oder durch Dritte zurückzuführen sein. In diesem Tutorial werden wir die Verwendung und die Arbeit von MD5 Hash in Python unterrichten.

Was ist MD5 Hash in Python?

Eine der Hash -Methoden, die vom Hashlib -Modul von Python bereitgestellt werden. Um die Hash -Berechnungen durchzuführen, wird sie hauptsächlich in kryptografischen Funktionen verwendet. Hash kann auch verwendet werden, um Caches von massiven Datensätzen zu erstellen, Kennwörter zu überprüfen, Fingerabdrücke zu überprüfen, die Integrität von Dateien usw. zu überprüfen usw. Es dauert eine Byte -Zeichenfolge als Eingabe und gibt eine hexadezimale Zeichenfolge als codierter Wert aus. Ein 128-Bit-Hash-Wert wird erzeugt, wenn die String-Daten an einen MD5-Hash codiert werden. Sie sollten vorsichtig sein, wenn Sie die Charaktercodierung auswählen, um die Textdaten vor dem Hashing in Binary umzuwandeln, da Hashing -Algorithmen häufig eher mit binären Daten als mit Textdaten funktionieren. Der Hash führt auch zu binären Daten.

Die Funktionen, die mit MD5 Hash verbunden sind, sind:

kodieren(): Es erstellt Bytes aus der Zeichenfolge, damit die Hash -Funktion sie verwenden kann.

verdauen(): Es gibt die codierten oder verschlüsselten Daten in Form von Bytes zurück.

hexDigest (): Das hexadezimale Format der codierten Daten wird mit dieser Funktion zurückgegeben.

Vorteile von MD5

  • Kleinere Hashes können verglichen und mit MD5 leichter gespeichert werden als die größeren Texte mit unterschiedlichen Längen.
  • Passwörter werden im 128-Bit-Format mit dem MD5-Algorithmus gespeichert/gespeichert.
  • Jedes Datenpaket fügt vor der Übertragung von Daten einen Hash -Wert hinzu. Sie können nach Dateibeschäftigung suchen, sobald die Daten vom Server empfangen werden. Die Überprüfung der Dateiintegrität ist gültig, solange der Hashes übereinstimmt, um eine Datenbeschädigung zu vermeiden.
  • Mit MD5 kann ein Nachrichtenverdauer einfach aus einer Originalnachricht generiert werden.

So verwenden Sie MD5 Hash in Python?

So werden im folgenden Abschnitt MD5 von String -Objekten und -dateien gezeigt.

Berechnung des MD5 -Hash -Wertes einer Zeichenfolge

Die Berechnung des Hash -Werts eines String -Objekts in Python umfasst im Allgemeinen vier Schritte:

  1. Erstellen oder Laden eines Zeichenfolgewerts.
  2. Umwandlung der Zeichenfolge in Bytes.
  3. Verschlüsseln Sie die Daten in Bytes in den MD5 -Hash -Wert.
  4. Zeigen oder geben Sie die Daten in Form von Bytes (mit Digest ()) oder in Form von Hexadezimal (mit hexDigest ()) an oder geben Sie sie zurück).

Die String -Variable "String" ist im vorherigen Skript mit binärer Codierung definiert. Der „Hashlib.Die MD5 -”-Methode kann daher verwendet werden, um die Zeichenfolge direkt zu verschlüsseln. Die codierte Ausgabe wird mit der Digest -Funktion angezeigt. Eine binäre Zeichenfolge ist möglicherweise nicht immer als Eingabe verfügbar. In solchen Szenarien müssen Sie zuerst die Daten in eine binäre Sequenz umwandeln, bevor Sie sie an den MD5 -Hash -Algorithmus weitergeben.

Wir sehen uns jetzt einige Beispiele an, um den MD5 -Hash eines String -Objekts zu berechnen.

Beispiel 1: Drucken der Zeichenfolgedaten in Bytes, die dem MD5 -Hash entsprechen

Um die MD5 -Funktion zu verwenden, müssen wir zuerst das Hashlib -Modul importieren. In der MD5 -Funktion übergeben wir eine Stringdaten. Dann drucken wir in Form von MD5 -Hash -Wert sowie in Form von Bytes.

Die Hash -Funktion kann die Bytes als Eingabe akzeptieren. Somit übergeben wir die Zeichenfolgen als Bytes an die Funktion md5 () im vorherigen Code. Die MD5 -Hash -Methode verschlüsselt dann die gelieferten Daten. Schließlich verwenden wir die Digest () -Funktion, um das Byte -Äquivalent der MD5 -Hash -codierten Zeichenfolge zu erzeugen.

Beispiel 2: Drucken der Zeichenfolgedaten in hexadezimaler Äquivalent zu MD5 -Hash

Jetzt drucken wir die Daten in Hexadezimal, nachdem wir sie in MD5 Hash codiert haben. Im vorherigen Beispiel verwenden wir "B" kurz vor dem String -Wert, um die Zeichenfolge in Bytes zu codieren. Hier wenden wir die Funktion codode () auf der Zeichenfolge an, um sie zu codieren. Beide Ansätze liefern identische Ergebnisse. Wir können jedoch das Codierungsformat unserer Wahl mithilfe der Funktion code () angeben.

Hier verwenden wir die Funktion codode (), um die angegebenen Zeichenfolgedaten in ein Byte zu transformieren, damit sie an eine Hash -Funktion übergeben werden kann, die sie akzeptieren würde. Dann ist es mit der MD5 -Funktion codiert. Schließlich wird sein hexadezimaler Wert mit der Hexidest () -Methode zurückgegeben.

Berechnung des MD5 -Hash -Wertes einer Datei

Das integrierte Modul-Hashlib von Python kann auch verwendet werden, um den MD5-Hash einer Datei zu erstellen

Beispiel 1: Der MD5 -Hash -Wert einer kleinen Datei in Python

Sie sollten sich bewusst sein, dass einfach ein Dateinamen im Hashlib angeben wird.MD5 () -Funktion gibt wie im folgenden Beispiel den Hash -Wert der Datei nicht zurück.

Der zurückgegebene Wert ist nicht der MD5 -Hash unserer Datei. Aber es ist der MD5 -Hash -Wert des „Python.txt ”String.

Um den richtigen MD5 -Hash -Wert der Datei zu erhalten, müssen Sie zuerst die Datei in Bytes lesen. Es ist einfach, wir müssen nur den Inhalt der Datei lesen und in Bytes umwandeln. Das Byte wird dann an Hashlib übergeben.MD5 (), um den MD5 -Hash -Wert zu erhalten.

Wie zu sehen ist, berechnet die Funktion den MD5 -Hash -Wert der Datei erfolgreich.

Beispiel 2: Der MD5 -Hash -Wert einer großen Datei in Python

Wenn die Datei 10 GB groß ist, sagen wir, es handelt sich um eine große Protokolldatei, ein Verkehrsdump, ein Videospiel usw. In einem solchen Fall können wir die großen Dateien in Bytesbrocken lesen, was eine speichereffiziente Methode zum Berechnen von MD5-Hashes darstellt. Die Größe der Stücke hängt von Ihrer Anforderung, der Größe Ihrer Datei, dem Speicher Ihres Systems usw. ab. Daher verarbeiten wir in diesem Verfahren die Brocken nacheinander und aktualisieren gleichzeitig den Hash. Infolgedessen wird der MD5 -Hash während dieses Prozesses 100 -mal aktualisiert, wenn 100 solche Dateibrocken vorhanden sind.

Wir lesen die Daten mithilfe der Hilfe von einer Weile -Schleife in Stücke.

Vergleichen und validieren Sie den MD5 -Hash einer Datei

Auf dem Server oder mit einer Logik in Ihrem Code sollten wir den MD5 -Hash der Daten oder Datei validieren. Wir erstellen den MD5 -Hash der Originaldatei erneut, um den Hash zu überprüfen. Vergleichen Sie danach die MD5 -Werte, die von der Quelle und uns generiert werden.

Als beide Werte stimmten der Wert von Source_MD5 und der MD5 -Hash -Wert unserer Datei überein. Das bedeutet, dass der MD5 -Hash -Wert verifiziert wird.

Abschluss

Wir haben zuerst die Hash -Funktionen in diesem Tutorial erfahren. Wir haben erklärt, was Hashlib.MD5 () -Funktion ist und welche Funktionen damit verbunden sind. Wir haben einige Vorteile und Anwendungen von MD5 -Hash -Funktionen erörtert. Wir haben gelernt, wie man den Hashlib benutzt.MD5 () -Methode zur Berechnung des MD5 -Hash -Werts einer String. Wir haben auch einige Beispiele implementiert, um Ihnen beizubringen, wie Sie den MD5 -Hash -Wert kleiner und großer Dateien in Python berechnen und überprüfen können.