Passionate about computer science and obsessed about good code.
Reach me at anekix001@gmail.com
anekix001@gmail.com
September 19, 2017
a version of the hashlib.foo methods that hash entire files rather than strings:
Code:
# filehash.py import hashlib class Hasher(object): """ A wrapper around the hashlib hash algorithms that allows an entire file to be hashed in a chunked manner. """ def __init__(self, algorithm): self.algorithm = algorithm def __call__(self, file): hash = self.algorithm() with open(file, 'rb') as f: for chunk in iter(lambda: f.read(4096), ''): hash.update(chunk) return hash.hexdigest() md5 = Hasher(hashlib.md5) sha1 = Hasher(hashlib.sha1) sha224 = Hasher(hashlib.sha224) sha256 = Hasher(hashlib.sha256) sha384 = Hasher(hashlib.sha384) sha512 = Hasher(hashlib.sha512)
Then use it like this.Whoop! a nicer and consistent api.
from filehash import sha1 print sha1('somefile.txt')