我将用户存储在名为用户的mysql表中,并且密码已使用bcrypt加密
在加密密码时一切都很好,但是在将密码与用户输入进行比较时,总是错误的,而且我不知道如何解决
与相关问题的相关性
请帮助
答案 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个字符,我将其更改为文本