Pythonでハッシュ値を求める方法

Pocket

ハッシュ値にはいろいろな種類があります。
Pythonには様々なハッシュ値を求める方法があります。
hashlibというライブラリを使います。

次のコードのsha1のところを書き換えるだけでいろいろなハッシュ値を求めることができます。

hs = hashlib.sha1(text.encode()).hexdigest()

次のようにすると対応しているハッシュ値の名前が求められます。

names = hashlib.algorithms_guaranteed

次のようにすると対応しているハッシュ値をまとめて求められます。

import hashlib
text = "本日は晴天なり"
names = sorted(hashlib.algorithms_guaranteed)
print(names)
for name in names:
  temp = "hashlib." + name + "(text.encode()).hexdigest()"
  try:
    hs = eval(temp)
  except TypeError:
    print(name, "エラー")
    continue
  print(name)
  print(hs)

結果

['blake2b', 'blake2s', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']
> blake2b
a02727f9a23c4722dec08ce4b5a705d2b1f5f0174cae02dc96d185f186dd874bf8851604e80945d438c69735184d5131b8016fd7b79b41839efbb1de20eb0ac1
> blake2s
b19631f4858d1cbad512c14f682ce24b56b59e889b25ff95b58b13d454ed166a
> md5
c67beed7a2249dc572eb17ad0c1e5c03
> sha1
6b4016472030307a38f6ca23f76572ae0bed338f
> sha224
6c8c5b253481f40095f13f3b28c5e3ecb8694f9fa0fb06d99b73d2a9
> sha256
f84671b48267afd0c7f512ba15ad30f1a4f01c1be769237f71b46ab239bcecb2
> sha384
5ffdb31855b6012d1f5726a7d1a195ede0956ccc59d2e0bb9c182a9efe9b6777fa5fa4cef57c095a14c1fea95dde3eb3
> sha3_224
c9d5a496364638dbd2b4b8c7c717fbc628ec6c3f59af076aac194406
> sha3_256
3492a9196d31d201ef995c765b1106c7a8d1e95bc63a57e6747862729b26bb3c
> sha3_384
9b805db0cf3b3fab38d31e8268fe76c4307b5337925cf3948e50f10e746f944000a1f8537077891cd7bf83a228b835da
> sha3_512
c1ad31b56cf5ce0ef605f61c3fd5745dbb66d7c08c670e4a2c82cece6903e6ffe7ca2464268b400407c107271c3083828fa5b6fea51a08f15fc224866f59a322
> sha512
3357a969a049b7d6f525b72d95a0aa39fe5accf4adf485351139b9c9796592ae519f884a1fd5afe8b093be5e9b9bc242bb3789c258d2a096a03681c7de280364
> shake_128 エラー
> shake_256 エラー

Streamlitで簡単に試せるページを作りました。
Hash

[ 2022年7月14日 | カテゴリー: Python | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報