Wie berechnet man MD5-Hashes großer Dateien in Python ohne Speicherbeschränkungen?

Patricia Arquette
Freigeben: 2024-10-20 11:03:30
Original
626 Leute haben es durchsucht

How to Compute MD5 Hashes of Large Files in Python Without Memory Limitations?

Berechnung des MD5-Hashs großer Dateien in Python

Während die Verwendung des Hashlib-Moduls von Python zur Berechnung des MD5-Hashs einer Datei für kleine Dateien unkompliziert ist Bei großen Dateien, die den verfügbaren Speicher überschreiten, wird es unpraktisch. In diesem Artikel wird eine praktische Lösung für diese Herausforderung untersucht.

Um das Speicherlimit zu umgehen, muss Hashlib Zugriff auf Teile der Datei und nicht auf die gesamte Datei auf einmal gewährt werden. Die folgende Python-Funktion liest eine Datei in Blöcken einer angegebenen Größe und akkumuliert die Teil-MD5-Hashes. Durch Festlegen einer geeigneten Größe für den block_size-Parameter (Standard: 2^20) werden Dateigrößen effektiv über die RAM-Beschränkungen hinaus verwaltet.

<code class="python">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

Um korrekte Ergebnisse zu gewährleisten, öffnen Sie die Datei im Binärmodus mit „rb“. ist unerlässlich.

Für einen umfassenderen Ansatz kann eine Hilfsfunktion alle notwendigen Schritte kapseln:

<code class="python">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

Die Gegenprüfung der Ergebnisse mit Tools wie Jacksum stellt die Genauigkeit der berechneten MD5-Hashes sicher .

Das obige ist der detaillierte Inhalt vonWie berechnet man MD5-Hashes großer Dateien in Python ohne Speicherbeschränkungen?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!