Pythonでファイルのハッシュ計算をする(ダイジェスト)
#Python #ハッシュ計算 #ハッシュ
以下はSHA1の計算。
code:py
def file_sha1(file_path, size=4096):
m = hashlib.sha1()
with open(file_path, 'rb') as f:
for chunk in iter(lambda: f.read(size * m.block_size), b''):
m.update(chunk)
return m.hexdigest()
参考: Pythonで大きなファイルのMD5チェックサムをチェックする時にMemoryErrorを回避する
上記ののm = hashlib.sha1()をm = hashlib.sha256()に変えるだけでSHA256など他のアルゴリズムでハッシュ計算できる。
他のアルゴリズムは「Python標準で利用可能なハッシュ計算のアルゴリズムの一覧」。
軽く計測した感じ、sha1sumコマンドよりも若干早いぐらいの速度は出る。
https://twitter.com/nwtgck/status/1201331741262110720