节点 JS bcrypt 比较 returns false
Node JS bcrypt compare returns false
所以,我看过一些关于 bcrypt compare 返回 false 的帖子,但 none 似乎是我的解决方案。
什么是什么的快速解释:
使用护照登录。
凭据存储在 MySQL 数据库中,使用 'mysql' 包。
这些似乎都适用于纯文本密码。
哈希并保存到数据库的代码:
var newPlayer = (email,username,password,callback) =>{
if(email && username &&password){
bcrypt.hash(password, 16, function(err,hash){
var sqlstr = sql.format("INSERT INTO players (email,username,password) VALUES (?,?,?);",[email,username, hash])
console.log(sqlstr);
connection.query(sqlstr,function(err, rows) {
if(err)console.log("[MYSQL] Error:",err);
if(callback)callback(err);
})
})
} else {
throw Error("[MYSQL] New Player requires email, username and password");
}
}
和比较代码(来自护照配置的片段):
DAO.getPlayer(email,function(player){
if(player)
bcrypt.compare(password,player.password,(err,match)=>{
if(err){
console.log("[PASSPORT] BCRYPT ERR:",err)
done(null,false)
}
else if(match)
return done(null,player)
else
return done(null, false)
})
else
return done(null, false)
})
在此先感谢您的帮助,如果我需要指定某些内容,请告诉我! :)
bcrypt
生成的散列为 60 个字符。尝试增加列的大小。
Hash Info
The characters that comprise the resultant hash are ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$.
Resultant hashes will be 60 characters long.
所以,我看过一些关于 bcrypt compare 返回 false 的帖子,但 none 似乎是我的解决方案。
什么是什么的快速解释:
使用护照登录。 凭据存储在 MySQL 数据库中,使用 'mysql' 包。
这些似乎都适用于纯文本密码。
哈希并保存到数据库的代码:
var newPlayer = (email,username,password,callback) =>{
if(email && username &&password){
bcrypt.hash(password, 16, function(err,hash){
var sqlstr = sql.format("INSERT INTO players (email,username,password) VALUES (?,?,?);",[email,username, hash])
console.log(sqlstr);
connection.query(sqlstr,function(err, rows) {
if(err)console.log("[MYSQL] Error:",err);
if(callback)callback(err);
})
})
} else {
throw Error("[MYSQL] New Player requires email, username and password");
}
}
和比较代码(来自护照配置的片段):
DAO.getPlayer(email,function(player){
if(player)
bcrypt.compare(password,player.password,(err,match)=>{
if(err){
console.log("[PASSPORT] BCRYPT ERR:",err)
done(null,false)
}
else if(match)
return done(null,player)
else
return done(null, false)
})
else
return done(null, false)
})
在此先感谢您的帮助,如果我需要指定某些内容,请告诉我! :)
bcrypt
生成的散列为 60 个字符。尝试增加列的大小。
Hash Info
The characters that comprise the resultant hash are ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$.
Resultant hashes will be 60 characters long.