Python文件散列

示例

哈希是将可变长度的字节序列转换为固定长度的序列的功能。出于多种原因,散列文件可能是有利的。哈希可以用于检查两个文件是否相同,或验证文件的内容是否未损坏或更改。

您可以用来hashlib为文件生成哈希:

import hashlib

hasher = hashlib.new('sha256')
with open('myfile', 'r') as f:
    contents = f.read()
    hasher.update(contents)

print hasher.hexdigest()

对于较大的文件,可以使用固定长度的缓冲区:

import hashlib
SIZE = 65536
hasher = hashlib.new('sha256')
with open('myfile', 'r') as f:
    buffer = f.read(SIZE)
    while len(buffer) > 0:
        hasher.update(buffer)
        buffer = f.read(SIZE)
print(hasher.hexdigest())