在Python 中計算大檔案的MD5 雜湊值
簡介
圖明檔案的MD5 哈希值當大檔案的大小超過可用記憶體時,它們可能會帶來挑戰。本文提出了一個實用的解決方案,無需將整個檔案載入到記憶體中即可計算 MD5 哈希值。解
要計算大檔案的 MD5 雜湊值,必須閱讀將它們分成可管理的區塊。以下程式碼片段示範了這一點:<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>
增強程式碼
要簡化該過程,請考慮以下增強程式碼:<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>
交叉檢查結果
為了確保準確性,請考慮交叉- 使用「jacksum」等專用工具檢查結果:jacksum -a md5 <filename>
以上是如何在Python中計算大檔案的MD5雜湊值而不導致記憶體過載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!