Python和Bcrypt:正确的密码未解密

时间:2019-07-05 05:45:16

标签: python python-3.x bcrypt

我正在为一个学校项目创建一个网站,除其他外,该网站还允许用户登录。用户数据存储在sqlite数据库中,包括哈希密码(通过bcrypt)。该网站在Flask / Python上运行。

我可以使用这些网站成功创建帐户,并且密码被散列。但是,当我尝试再次登录时,该代码根本无法工作-即使我输入了正确的密码(相信我,它也不是错字,我也尝试了很多)

bcrypt.check_password_hash(db_password,密码)

返回False。

我尝试切换db_password和密码,但出现错误消息,提示“无效盐”。

密码被散列的代码是

hashed_password = bcrypt.generate_password_hash(password1).decode('utf-8')

登录代码为:

if not bcrypt.check_password_hash(db_password, password):
    print("Incorrect password.")
    return redirect('login/incorrect')

session['user_id'] = user_id
session['username'] = username
return redirect('/')

此代码,如果使用正确的密码,则返回redirect('/'),但我一直在获取return redirect('login / incorrect')。

-

编辑:

我删除了数据库并创建了新帐户,以确保密码正确。名为“ 1”且密码为“ 1”的用户正常工作。名为“ t”且密码为“ t”的用户不起作用。名为“ test”且密码为“ 0”的用户也可以使用。密码“ 2.0”也可以正常使用,但是我检查了一下-Python将可变密码处理为字符串,即使它是数字也是如此。

0 个答案:

没有答案