node.js - Node JS 中的哈希密码用于 MongoDB 中已有的密码
问题描述
我在 MongoDB 中手动存储密码并从 mongoose 获取密码信息以登录,因为这不是存储密码的用户注册模块,只有登录模块。
有什么方法可以将已经存储的密码转换为哈希密码?
我已阅读有关密码散列的文章,但我发现在用户注册期间大多数散列密码都不是问题。
但是如何在猫鼬中散列已经存储的密码并存储在数据库中?
如果有任何人希望我推荐或建议我的方法的任何文章,这也会有所帮助。我仍在探索是否有任何我会更新的选项。
我可以通过编辑预存储的密码来散列密码。
为此,我使用了 bcrypt:
const salt = await bcrypt.genSalt(10);
password = await bcrypt.hash(password,salt);
但是我现在面临的问题是我想利用那个散列密码,那么我怎样才能恢复散列密码。
原因是我将我的电子邮件 ID 和密码存储在数据库中以便触发邮件,并且为了安全起见我对密码进行了哈希处理,但现在发生的情况是,由于密码被哈希处理,我的邮件触发器无法工作,因为它无法识别密码。
那么可以为它做些什么呢?
解决方案
对于比较密码,您应该使用compareSync
它返回一个布尔结果,如下所示:
bcrypt.compareSync('input password', 'password stored in db')
if(trueOrFalse) {
console.log('password was true');
} else {
console.log('oops, password was false');
}
推荐阅读
- graphql - 你如何在 GraphQL 中处理多个类型的数组(例如:不同的内容块)?
- c - 为什么访问单个 SIMD 元素这么慢
- java - JFrame框架调用JPanelpaintComponent
- c# - 如何在 DataGridView 中显示 LiteDB 数据?
- javascript - 反应和未经许可的参数
- swift - 如何使用“可解码”对象在 Realm 中进行部分更新而不会丢失数据?
- android - 如何使用图像和百分比位置创建 Android 启动画面
- google-app-maker - 关系过滤
- reactjs - 如何在 Material UI/JSS 中定位复杂组件的同级/子级
- api - 在 Postman POST 请求中传递对象列表 -Body