如何修复bcrypt类型错误 - “必须在散列之前编码Unicode对象”

问题描述 投票:0回答:1

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

我的代码:

import bcrypt 

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

如果有人知道如何解决这个问题,请提前告知我们。

python python-3.x unicode hash bcrypt
1个回答
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"

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.