我正在尝试为我的项目创建一个登录系统,我需要对用户密码使用散列,我不确定如何对变量名进行散列并将其转换为字节以给出密码的十六进制结果。
尝试使用:
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
答案 0 :(得分:1)
使用.encode
方法对密码字符串进行编码。
import hashlib
user = {}
username = input("What is your username? ")
password = input("What is your password? ")
hash_object = hashlib.md5(passsword.encode('utf8'))
print(hash_object.hexdigest())
我推荐这个很棒的线程,它可能会清除一些东西: