作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚为我的 REST API 实现了用户身份验证,并使用 bcrypt 进行密码哈希处理。创建用户时我基本上是这样做的
const passwordSalt: string = await genSalt(12);
const passwordHash: string = await hash('pAsSwOrD', passwordSalt);
并将哈希值保存到数据库中。稍后当用户登录时,我将提供的密码与数据库密码哈希进行比较。
const passwordMatches: boolean = await compare('wRoNg pAsSwOrD', user.passwordHash);
我知道比较函数应该很慢以帮助抵御暴力攻击。但是比较功能需要一分多钟才能完成。用户不会等待它完成。那么我的代码有问题吗?
如果您需要更多信息,请告诉我。
最佳答案
成本为 12 的 bcrypt 在任何真实计算机上不应超过 1 秒。
这一定意味着您使用的 bcrypt 实现编写得不是很好。
检查它不是 bcrypt 的好方法,尝试以不同的成本调用:
关于node.js - bcrypt compare 需要一分多钟才能完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693792/
我是一名优秀的程序员,十分优秀!