読者です 読者をやめる 読者になる 読者になる

<Python> md5 hash を作る。(暗号化)

md5 ハッシュ hashを生成する。

In [201]: import hashlib

In [212]: hashlib.md5('john@example'.encode('utf-8')).hexdigest()
Out[212]: '2e7a11032096c21c8e9d9704cef65fb8'

.digest()にすると、

In [213]: hashlib.md5('john@example'.encode('utf-8')).digest()
Out[213]: b'.z\x11\x03 \x96\xc2\x1c\x8e\x9d\x97\x04\xce\xf6_\xb8'

.encode()を外すと、

In [214]: hashlib.md5('john@example').hexdigest()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-214-42f9c6eff509> in <module>()
----> 1 hashlib.md5('john@example').hexdigest()

TypeError: Unicode-objects must be encoded before hashing

エラー、
バイbyte指定のbを付けたら、

In [215]: hashlib.md5(b'john@example').hexdigest()
Out[215]: '2e7a11032096c21c8e9d9704cef65fb8'

オッケー。

マニュアル

15.1. hashlib — セキュアハッシュおよびメッセージダイジェスト — Python 3.5.2 ドキュメント