问题描述
我手动将密码存储在 MongoDB 中并从 mongoose 获取密码信息进行登录,因为这不是用户注册模块来存储密码,只有登录模块。
有什么办法可以将已经存储的密码转换成哈希密码?
我已阅读有关密码散列的文章,但我发现大多数在用户注册期间散列的密码都不是问题。
但是如何散列已经存储在 mongoose 中的密码并存储在 db 中?
如果有人想让我推荐或建议我的方法的任何文章也会有所帮助。我仍在探索是否有任何我会更新的选项。
我能够通过编辑预先存储的密码来散列密码。
为此我使用了 bcrypt:
const salt = await bcrypt.genSalt(10);
password = await bcrypt.hash(password,salt);
但我现在面临的问题是我想使用该散列密码,那么如何恢复散列密码。
原因是我将我的电子邮件 ID 和密码存储在 db 中以便触发邮件,并且我对密码进行了散列以确保安全,但现在发生的情况是,由于密码被散列,我的 mailtrigger 无法正常工作,因为它无法识别密码。
那么可以为它做些什么?
解决方法
对于比较密码,您应该使用 compareSync
它返回一个布尔结果,如下所示:
bcrypt.compareSync('input password','password stored in db')
if(trueOrFalse) {
console.log('password was true');
} else {
console.log('oops,password was false');
}