使用bcrypt.compare总是返回false

htrmnn0y  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(402)

我将用户存储在一个名为users的mysql表中,密码用bcrypt加密
在加密密码时一切都很顺利,但在将密码与用户输入进行比较时,总是错误的,我不知道如何修复它
在解释的过程中,你需要做些什么
https://gist.github.com/sarmanulco/49e582ab0317e1c542f30acf8d1f69eb
请帮忙

xjreopfe

xjreopfe1#

您的代码示例没有显示您调用的位置 bcrypt.hash 以及存储密码,所以很难判断问题出在哪里。
如果你在本地调试,你必须知道密码是什么;尝试从数据库获取密码哈希并运行 bcrypt.compare('the real password', 'password hash from db') 在节点控制台中,查看它返回什么。
几乎可以肯定的是:
1) 您保存的密码哈希不正确。
2) 您将密码哈希与错误的内容进行比较。
3) 它的工作正常,你只是没有输入正确的密码。
诀窍是找出哪一个。

lnvxswe2

lnvxswe22#

SQL CREATE TABLE IF NOT EXISTS Users ( user_id int primary key auto_increment not null, first_name varchar(30), last_name varchar(100), pass varchar(50) ) character set utf8; 问题出在列文本上,配置为最多50个字符,我将它改为文本

相关问题