如何修复 bcrypt 类型错误 - "Unicode-objects must be encoded before hashing"

How to fix bcrypt Type Error - "Unicode-objects must be encoded before hashing"

当我 运行 下面提供的代码时,我收到类型错误 "Unicode-objects must be encoded before hashing"。起初我认为这可能与输入语句有关,但在将密码设置为普通字符串进行尝试后,它仍然不起作用。如果这是一个非常简单的解决方案,我很抱歉,但我是 python 的新手,无法在此处或任何其他网站上找到任何其他答案。如果该信息对您有帮助,我正在使用 python 3。

我的代码:

import bcrypt 

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

如果有人知道如何解决这个问题,请告诉我,在此先感谢。

这里需要一个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"

祝你好运!