【发布时间】:2019-04-14 21:07:55
【问题描述】:
我正在尝试为我的项目创建一个登录系统,我需要对用户密码使用散列,我不确定如何散列变量名称并将其转换为字节以给出密码的十六进制结果。
尝试使用:
hash_object = hashlib.md5(b(password))
和:
hash_object = hashlib.md5((password))
代码:
import hashlib
user = {}
username = input("What is your username? ")
password = input("What is your password? ")
hash_object = hashlib.md5((password))
print(hash_object.hexdigest())
错误:
Traceback (most recent call last):
File "E:\loginsystem.py", line 8, in <module>
hash_object = hashlib.md5((password))
TypeError: Unicode-objects must be encoded before hashing
【问题讨论】:
-
也 - 不要使用 md5 来散列密码。请参阅此处:security.stackexchange.com/questions/211/… 以获得更好的建议。
-
如果您只是了解安全性 - 很好。但是,如果您要向公共互联网/实际用户发布某些内容,则不要推出自己的身份验证 - 将其留给专家。
-
所以它的 utf8 rightttt 大声笑
标签: python python-3.x