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