在Python中获取大文件的MD5哈希值

问题:

我使用了hashlib(它在Python 2.6 / 3.0中替换了md5),如果我打开一个文件并将其内容放在hashlib.md5()函数中,那么它可以正常工作。
问题是非常大的文件,他们的大小可能超过RAM大小。
如何获取文件的MD5哈希,而不将整个文件加载到内存中?

回答:

将文件分解成128字节的块,并使用update()连续送入MD5
这有利于MD5具有128字节的摘要块的事实。基本上,当MD5 digest()的文件,这正是它在做什么。
如果确保在每次迭代中释放内存(即不将整个文件读入存储器),则不应超过128个字节的内存。
一个例子是读这样的块:

f = open(fileName)
while not endOfFile:
    f.read(128)

 
 Code问答: codewenda.com
Stackoverflow:Get MD5 hash of big files in Python

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 2 = 1