Cara Mengira Hash MD5 Fail Besar dalam Python dengan Cekap

Linda Hamilton
Lepaskan: 2024-10-20 09:52:30
asal
926 orang telah melayarinya

How to Efficiently Compute MD5 Hash of Large Files in Python

Kira Cincang MD5 Fail Besar Dengan Cekap dalam Python

Dalam senario tertentu, adalah perlu untuk mengira cincang MD5 bagi fail besar yang melebihi RAM yang tersedia. Fungsi Python asli hashlib.md5() tidak sesuai untuk senario sedemikian kerana ia memerlukan keseluruhan fail dimuatkan ke dalam memori.

Untuk mengatasi had ini, pendekatan praktikal ialah membaca fail dalam ketulan yang boleh diurus dan mengemas kini cincang secara berulang. Ini membolehkan pengiraan cincang yang cekap tanpa melebihi had memori.

Pelaksanaan Kod

<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>
Salin selepas log masuk

Contoh Penggunaan

Untuk mengira cincang MD5 fail, gunakan sintaks berikut:

<code class="python">with open(filename, 'rb') as f:
    md5_hash = md5_for_file(f)</code>
Salin selepas log masuk

Pembolehubah md5_hash akan mengandungi cincangan MD5 yang dikira sebagai objek seperti bait.

Pertimbangan Tambahan

Pastikan anda membuka fail dalam mod binari ('rb ') untuk mengelakkan keputusan yang salah. Untuk pemprosesan fail yang komprehensif, pertimbangkan fungsi berikut:

<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>
Salin selepas log masuk

Fungsi ini mengambil laluan fail dan mengembalikan cincangan MD5 sebagai rentetan perenambelasan.

Dengan menggunakan teknik ini, anda boleh mengira dengan cekap Cincang MD5 untuk fail besar tanpa menghadapi had memori.

Atas ialah kandungan terperinci Cara Mengira Hash MD5 Fail Besar dalam Python dengan Cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!