使用bcrypt.compare总是返回false

时间:2018-12-30 12:18:48

标签: mysql node.js bcrypt

我将用户存储在名为用户的mysql表中,并且密码已使用bcrypt加密

在加密密码时一切都很好,但是在将密码与用户输入进行比较时,总是错误的,而且我不知道如何解决

与相关问题的相关性

请帮助

2 个答案:

答案 0 :(得分:1)

您的代码示例未显示您在调用bcrypt.hash和存储密码的位置,因此很难确定问题出在哪里。

如果在本地调试,则必须知道实际的密码;尝试从数据库中获取密码哈希并在节点控制台中运行bcrypt.compare('the real password', 'password hash from db'),然后查看返回的结果。

问题几乎可以肯定是:

1)您错误地保存了密码哈希。

2)您正在将密码哈希与错误的内容进行比较。

3)它工作正常,只是您没有输入正确的密码。

诀窍是找出哪一个。

答案 1 :(得分:0)

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个字符,我将其更改为文本