如何解决bcrypt类型错误-“在散列之前必须对Unicode对象进行编码”

时间:2019-02-22 16:31:07

标签: python python-3.x unicode hash bcrypt

当我运行下面提供的代码时,出现类型错误,指出“在散列之前必须对Unicode对象进行编码”。最初,我认为这可能与输入语句有关,但是在尝试将密码设置为普通字符串后,它仍然无法正常工作。如果这是一个非常简单的解决方案,请先抱歉,但是我是python的新手,无法在此处或任何其他网站上找到任何其他答案。如果该信息对您有帮助,我正在使用python 3。

我的代码:

import bcrypt 

password = input("Input your desired password: ")
hashedPassword = bcrypt.hashpw(password, bcrypt.gensalt())

如果有人知道如何解决此问题,请提前告诉我。

1 个答案:

答案 0 :(得分:1)

在这里,需要bytes类型而不是str类型的实例。这应该可以解决您的问题

import bcrypt 

password = input("Input your desired password: ")
b = password.encode('utf-8') # I just added this line
hashedPassword = bcrypt.hashpw(b, bcrypt.gensalt()) # dont forget to change "password" -> "b"

祝你好运!