我知道Bcrypt的全部意义在于为了限制暴力攻击的实用性而进行哈希时非常昂贵。但是,这不是因为它本身就不可扩展吗?例如,我读过的一个网站声称应该调整Bcrypt中的成本因子,以便在当前硬件上哈希需要0.25秒。如果你有一个中等成功的网站,甚至有几百人随时登录,那么0.25秒的复合使得每个用户都有可能等待几秒钟?当哈希值为0.25秒导致资源使用率持续高时,服务器的CPU是否最大?
作为第二个问题,假设它是可扩展的(我确定它是),这些天适当的成本因素是什么?
答案 0 :(得分:1)
这可能更适合其他Stackoverflow网站之一,因为它会促进讨论,而不是特定的编程问题。
也就是说,您提出的第一个问题最有可能通过使用可根据需要进行扩展以提供并发身份验证请求的服务来解决,以便为最终用户提供可接受的响应时间。实现此目的的一种方法是在负载均衡器后面放置多个服务器,将身份验证请求路由到负载均衡器,以便切换到身份验证服务器。个人身份验证请求可以在基本上随机的服务器上运行,并且如果您的系统架构是正确的,那么从客户端的角度来看它是无缝的。