在(作为实现密码反模式的副作用)存储密码的 Web 应用程序中,一个建议是使用 bcrypt 来存储它们(或计算昂贵的单向加盐哈希)。但是,这样做会使服务器进程将大部分时间花在 CPU 密集型 bcrypt 比较上,因为使用 bcrypt 的全部意义在于测试密码需要时间。
我的问题是:缓存(在内存中)bcrypt 比较的响应是否安全?我不担心每个进程花费一次时间,但每个请求一次将成为可伸缩性瓶颈。加分(?)如果您可以在通常的做法中有所启发。
我考虑过的事情:
- 如果它仅在内存中,则更难攻击
- 如果永久存储被破坏,它会像以前一样安全
- 降低 bcrypt 负载因子会使密码数据库更容易受到攻击(如果受到攻击)