如何将散列密码与 Python 中的 Input() 进行比较?
How to compare hashed password to Input() in Python?
目标:
目前正在学习如何使用 Python 加密密码。
当前代码:
import bcrypt
passwd = b'False'
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(passwd, salt)
x = input()
print(hashed == bcrypt.hashpw(x, hashed))
问题:
我可能做错了,需要一些指导如何正确实现。
如何在 b''
的撇号之间插入输入值?这就是密码所在的位置,并与散列密码进行比较。
这是我试过的方法(另外,我在正确的行上吗?):
x = b'%s' % (input())
CMD 上的输出
x = b'%s' % (input())
TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'
目标
我正在尝试将输入与散列密码进行比较。
您应该在使用它之前了解 b''
的作用,这将使您能够朝着正确的方向寻找解决方案。
答案是:它表明你分配的是一个字符串字节文字。这基本上意味着你有一堆字节作为你的数据。 (参见 these answers)
一旦您知道可以在 Python 中搜索如何将字符串转换为字节,这将引导您 here
因此,您最初问题的答案(是的,您应该使用 checkpw
)是:
print(hashed == bcrypt.hashpw(x.encode('utf-8'), hashed))
目标:
目前正在学习如何使用 Python 加密密码。
当前代码:
import bcrypt
passwd = b'False'
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(passwd, salt)
x = input()
print(hashed == bcrypt.hashpw(x, hashed))
问题:
我可能做错了,需要一些指导如何正确实现。
如何在 b''
的撇号之间插入输入值?这就是密码所在的位置,并与散列密码进行比较。
这是我试过的方法(另外,我在正确的行上吗?):
x = b'%s' % (input())
CMD 上的输出
x = b'%s' % (input())
TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'
目标
我正在尝试将输入与散列密码进行比较。
您应该在使用它之前了解 b''
的作用,这将使您能够朝着正确的方向寻找解决方案。
答案是:它表明你分配的是一个字符串字节文字。这基本上意味着你有一堆字节作为你的数据。 (参见 these answers)
一旦您知道可以在 Python 中搜索如何将字符串转换为字节,这将引导您 here
因此,您最初问题的答案(是的,您应该使用 checkpw
)是:
print(hashed == bcrypt.hashpw(x.encode('utf-8'), hashed))