def file_digest(self, file_path, digest_type=None):
'''Creates a digest based on the digest_type argument.
digest_type defaults to SHA256.'''
valid_digests = ['md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512']
block_size = 65536
if not digest_type:
digest_type = 'sha256'
if digest_type in valid_digests:
h = hashlib.new(digest_type)
with open(file_path, 'rb') as f:
for block in iter(lambda: f.read(block_size), b''):
h.update(block)
return h.hexdigest()
else:
raise Exception('%s not a valid digest - choose from %s' %
(digest_type, valid_digests))
评论列表
文章目录