8

我使用 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.生成哈希时,看起来盐是在密码前添加的。我不必将盐保存在数据库中吗?

任何帮助表示赞赏

4

1 回答 1

6

是的,这就是它的全部!你原来加密密码时生成的盐是用来防止彩虹表攻击的;你不需要坚持它。

于 2012-05-28T00:08:24.440 回答