【发布时间】:2020-07-23 03:52:12
【问题描述】:
我有一个使用 bcrypt 的简单 Flask 应用程序。我在这个简单易用的库上花了几个小时来找出编码问题。 login 方法调用 doDecideHashedPassword 方法,如果凭据匹配,则该方法应返回 true 或 false。
还要注意以下几点
- 我使用 postgres,目前我的密码字段设置为 varchar(500)
- 我将散列密码转换为 str 以将其准确存储在数据库中。
当我从数据库请求哈希密码并通过下面的 doDecodeHashedPassword 传递它时,我得到无效的盐。这接受来自表单的电子邮件和密码。
def doDecodeHashedPassword(self, email, password):
getpwd = ClientUser.query.filter_by(email=email).one()
getpwd = getpwd.password
getpwd = getpwd.encode()
password = password
check_user_integrity = bcrypt.checkpw(password,getpwd)
if check_user_integrity:
return (check_user_integrity)
else:
return False
为什么我收到无效盐错误。
【问题讨论】:
标签: python-3.x bcrypt