首页 > 解决方案 > Node JS 中的哈希密码用于 MongoDB 中已有的密码

问题描述

我在 MongoDB 中手动存储密码并从 mongoose 获取密码信息以登录,因为这不是存储密码的用户注册模块,只有登录模块。

有什么方法可以将已经存储的密码转换为哈希密码?

我已阅读有关密码散列的文章,但我发现在用户注册期间大多数散列密码都不是问题。

但是如何在猫鼬中散列已经存储的密码并存储在数据库中?

如果有任何人希望我推荐或建议我的方法的任何文章,这也会有所帮助。我仍在探索是否有任何我会更新的选项。

我可以通过编辑预存储的密码来散列密码。

为此,我使用了 bcrypt:

const salt = await bcrypt.genSalt(10);
password = await bcrypt.hash(password,salt);

但是我现在面临的问题是我想利用那个散列密码,那么我怎样才能恢复散列密码。

原因是我将我的电子邮件 ID 和密码存储在数据库中以便触发邮件,并且为了安全起见我对密码进行了哈希处理,但现在发生的情况是,由于密码被哈希处理,我的邮件触发器无法工作,因为它无法识别密码。

那么可以为它做些什么呢?

标签: node.jspassport.jsbcryptpassword-hash

解决方案


对于比较密码,您应该使用compareSync它返回一个布尔结果,如下所示:

bcrypt.compareSync('input password', 'password stored in db')
if(trueOrFalse) {
    console.log('password was true');
} else {
    console.log('oops, password  was false');
}

推荐阅读