如何将密码转换为哈希值?

时间:2019-04-14 21:07:55

标签: python python-3.x

我正在尝试为我的项目创建一个登录系统,我需要对用户密码使用散列,我不确定如何对变量名进行散列并将其转换为字节以给出密码的十六进制结果。

尝试使用:

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

1 个答案:

答案 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())

我推荐这个很棒的线程,它可能会清除一些东西:

What is the difference between a string and a byte string?