【问题标题】:NodeJS - Passport password appears as plain text in DBNodeJS - 护照密码在数据库中显示为纯文本
【发布时间】:2014-01-30 17:51:42
【问题描述】:

可能我在这里遗漏了一些东西。

有一个带有 MongoDB 的 Express 服务器,我正在使用护照进行身份验证。 我正在使用标准代码示例之一进行注册,看起来没问题,但我可以看到我在数据库的密码字段(纯文本)中输入的密码。
我希望它会被加密...

我做错了吗?

【问题讨论】:

  • Mongodb 不会将密码与其他文本有任何不同。您必须自己处理加密。你可以看看这个question。答案试图解决类似的问题。存储密码不是一个好主意。更好地存储他们的盐渍哈希。
  • 基本上mongodb只是提供存储。您必须使用 bcrypt 或其他库来处理安全性。

标签: node.js passport.js


【解决方案1】:

您必须自己散列密码。以下是使用 brcypt 的方法:

function hashPassword (password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync());
}

因此,在将用户保存到数据库之前,只需像这样调用该函数:

 user.password = hashPassword(thepassword);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2013-10-31
    • 2020-03-16
    • 2012-12-31
    • 2018-07-14
    • 2018-08-27
    • 2017-07-21
    相关资源
    最近更新 更多