文件哈希

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

你可以使用 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())