【问题标题】:Nodejs bcrypt libraryNodejs bcrypt 库
【发布时间】:2012-06-02 10:26:45
【问题描述】:

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

任何帮助表示赞赏

【问题讨论】:

    标签: javascript mysql node.js password-protection bcrypt


    【解决方案1】:

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

    【讨论】:

    • 太棒了。真的很不错的图书馆。并且易于使用
    • 很好的答案。这篇文章也帮助我理解了为什么你不需要坚持盐。 stackoverflow.com/questions/277044/…
    • 当心:正如@emilebaizel 链接的问题的公认答案所指出的那样,盐存储为结果哈希的一部分。使用的轮数也是散列的一部分,从而产生一个散列,其中包含“检查器”代码所需的所有信息。
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2018-06-06
    • 1970-01-01
    • 2022-01-24
    • 2019-02-16
    • 1970-01-01
    • 2018-06-09
    • 2015-11-08
    相关资源
    最近更新 更多