python hashlib

pythonのhashlibの使い方

タグ hashlib


hashlibの使い方

概要

  • pythonの標準以外のhash関数
  • python標準のhash関数はセキュリティ上の課題によりシード値が毎回ランダム化するので一定の値を使いたい場合はhashlibを使う

サポートするアルゴリズム

import hashlib
print(hashlib.algorithms_available)

# {'md5', 'sha3_256', 'sha3_384', 'sha1', 'blake2s', 'sha224', 'sha256', 'sha3_224', 'sha3_512', 'blake2b', 'shake_256', 'sha384', 'sha512', 'shake_128'}

各アルゴリズムのダイジェストサイズ

from hashlib import sha1, md5, sha224, sha256, sha512, sha3_512, pbkdf2_hmac
for algorithm in [md5, sha1, sha224, sha256, sha512, sha3_512]:
    m = algorithm()
    m.update(b"Nobody inspects")
    m.update(b" the spammish repetition")
    print(algorithm)
    print(m.digest_size)
    print(m.digest()) # digest値
    print(m.hexdigest()) # 文字列でのダイジェスト値
  • md5
    • 16バイト
  • sha1
    • 20バイト
  • sha224
    • 28バイト
  • sha512
    • 32バイト
  • sha3_512
    • 64バイト
  • pbkdf2_hmac
    • 64バイト

stringのハッシュ化

import hashlib
def compute_hash(text: str) -> str:
    return hashlib.sha256(text.encode('utf-8')).hexdigest()

google colab

参考