2018年6月18日月曜日
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/06/pythontypeerror-unicode-objects-must-be.html

【Python】TypeError: Unicode-objects must be encoded before hashing

hashlibを使用してPythonで文字列をハッシュ化しようとしたらエラーが発生した。


  • TypeError: Unicode-objects must be encoded before hashing

エラーソース

import hashlib

# ハッシュ化する文字列(パスワード)など
password = 'heibon'

# エラー TypeError: Unicode-objects must be encoded before hashing
hash = hashlib.sha1(password).hexdigest()

print(hash)

原因

ログにあるとおり、ハッシュ化する時は事前にエンコードしなきゃダメなんだな。
password.encode("UTF-8")とすることで解決。

修正ソース

import hashlib

# ハッシュ化する文字列(パスワード)など
password = 'heibon'

hash = hashlib.sha1(password.encode("UTF-8")).hexdigest()

# 正常 472399b45c283b5c9fadc6611190450c2b4fe542
print(hash)




0 件のコメント:

コメントを投稿

お気軽にコメント下さい。