我使用nodejs bcrypt库来获得更好的密码保护。
我不确定我究竟该如何使用它,但我到目前为止得到了这个:
//A module containing this login function:
login: function(credentials,req,res) {
//"credentials" is containing email and password from login form
var query = 'SELECT password, email FROM users WHERE email = ? LIMIT 1';
client.query(query,[credentials.email], function(err, results) {
if (results[0]) {
//Compare passwords
if (bcrypt.compareSync(credentials.password, results[0].password)) {
//Set session data and redirect to restricted area
}
}
});
}
我删除了示例中的所有错误处理,以便更容易阅读代码。
1.这有效,我可以登录并设置会话。但这就是它的全部吗?我错过了什么吗?
2.生成哈希时看起来就像盐一样在密码前面。我不得不在db中保存盐吗?
任何帮助表示赞赏
答案 0 :(得分:6)
是的,这就是它的全部!加密密码时生成的盐最初用于防止彩虹表攻击;你不需要坚持下去。