So berechnen Sie effizient den MD5-Hash großer Dateien in Python

Linda Hamilton
Freigeben: 2024-10-20 09:52:30
Original
1011 Leute haben es durchsucht

How to Efficiently Compute MD5 Hash of Large Files in Python

Berechnen Sie den MD5-Hash großer Dateien effizient in Python

In bestimmten Szenarien ist es notwendig, den MD5-Hash großer Dateien zu berechnen, die den verfügbaren RAM überschreiten. Die native Python-Funktion hashlib.md5() ist für solche Szenarien nicht geeignet, da sie erfordert, dass die gesamte Datei in den Speicher geladen wird.

Um diese Einschränkung zu überwinden, besteht ein praktischer Ansatz darin, die Datei in überschaubaren Blöcken zu lesen und Aktualisieren Sie den Hash iterativ. Dies ermöglicht eine effiziente Hash-Berechnung, ohne die Speichergrenzen zu überschreiten.

Code-Implementierung

<code class="python">import hashlib

def md5_for_file(f, block_size=2**20):
    md5 = hashlib.md5()
    while True:
        data = f.read(block_size)
        if not data:
            break
        md5.update(data)
    return md5.digest()</code>
Nach dem Login kopieren

Beispielverwendung

Um den MD5-Hash einer Datei zu berechnen, verwenden Sie die folgende Syntax:

<code class="python">with open(filename, 'rb') as f:
    md5_hash = md5_for_file(f)</code>
Nach dem Login kopieren

Die Variable md5_hash enthält den berechneten MD5-Hash als byteähnliches Objekt.

Zusätzliche Überlegungen

Stellen Sie sicher, dass Sie die Datei im Binärmodus ('rb '), um falsche Ergebnisse zu vermeiden. Betrachten Sie für eine umfassende Dateiverarbeitung die folgende Funktion:

<code class="python">import os
import hashlib

def generate_file_md5(rootdir, filename, blocksize=2**20):
    m = hashlib.md5()
    with open(os.path.join(rootdir, filename), 'rb') as f:
        while True:
            buf = f.read(blocksize)
            if not buf:
                break
            m.update(buf)
    return m.hexdigest()</code>
Nach dem Login kopieren

Diese Funktion nimmt einen Dateipfad und gibt den MD5-Hash als hexadezimale Zeichenfolge zurück.

Durch die Verwendung dieser Techniken können Sie effizient rechnen MD5-Hashes für große Dateien ohne Speicherbeschränkungen.

Das obige ist der detaillierte Inhalt vonSo berechnen Sie effizient den MD5-Hash großer Dateien in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage