che*_*rry 0 hash performance bcrypt node.js angular
我正在使用 Angular 和 Node.js 开发一个项目。我使用 bcrypt 来保护我的不同密码。但我有一个问题仍在努力解决。
当新用户必须注册时,对输入的密码进行哈希处理的过程需要花费大量时间,从而降低了我的前端速度。登录方法也是一样的。
根据一些资源,它与 bcrypt“散列和比较”方法有关。有人可以告诉我如何使用这些方法而不减慢我的网站速度吗?
小智 5
Bcrypt 有一个“工作因子”(node.js 库似乎称之为“saltRounds”),它定义了它执行的迭代次数,以及它的速度有多慢。
默认工作因子通常为 10,因此您可以减少该值以使散列过程更快。请注意,如果数据库中已有哈希值,它们将继续使用旧的工作因子,直到被替换 - 通常是通过更改密码来替换。
然而,你需要考虑的是,慢是bcrypt 的要点。散列过程越快,攻击者尝试破解散列(如果可以获取散列)的速度就越快。这是不推荐使用 MD5 和 SHA-* 哈希的主要原因之一 - 它们被设计得很快,而这正是您不想要的。
话虽如此,一切都是为了找到平衡。如果您的工作因素太高,那么它不仅会降低您网站的速度,而且如果攻击者可以通过重复登录尝试来最大化您的 CPU,还可能会引入 DoS 风险。
在您的服务器上进行一些基准测试,也许尝试使用 9 或 8 的工作因子来找到适合您的点。
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |