Ruby on rails 对于Rails网站,Bcrypt的可扩展性如何?

Ruby on rails 对于Rails网站,Bcrypt的可扩展性如何?,ruby-on-rails,ruby,bcrypt,bcrypt-ruby,Ruby On Rails,Ruby,Bcrypt,Bcrypt Ruby,我知道Bcrypt的全部目的是在散列以限制暴力攻击的实用性时花费大量时间。但是,这难道不意味着它天生就不可伸缩吗?例如,我读到的一个站点声称应该调整Bcrypt中的成本因素,以便在当前硬件上进行哈希运算需要0.25秒。如果你有一个相当成功的站点,在任何时候都有几百人登录,那么0.25秒的复合时间是否会让每个用户都有可能等待几秒钟?当散列0.25秒导致持续高资源使用率时,服务器的CPU是否达到最大值 作为第二个问题,假设它是可伸缩的(我肯定是这样),现在什么是合适的成本因素?这可能更适合其他Sta

我知道Bcrypt的全部目的是在散列以限制暴力攻击的实用性时花费大量时间。但是,这难道不意味着它天生就不可伸缩吗?例如,我读到的一个站点声称应该调整Bcrypt中的成本因素,以便在当前硬件上进行哈希运算需要0.25秒。如果你有一个相当成功的站点,在任何时候都有几百人登录,那么0.25秒的复合时间是否会让每个用户都有可能等待几秒钟?当散列0.25秒导致持续高资源使用率时,服务器的CPU是否达到最大值


作为第二个问题,假设它是可伸缩的(我肯定是这样),现在什么是合适的成本因素?

这可能更适合其他Stackoverflow站点之一,因为它将促进讨论,而不是一个特定的编程问题


也就是说,您提出的第一个问题很可能是通过使用一个服务来解决的,该服务可以根据需要进行扩展,以服务并发身份验证请求,从而为最终用户提供可接受的响应时间。实现这一点的一种方法是在负载平衡器后面有多个服务器,身份验证请求路由到负载平衡器,以便移交给身份验证服务器。单个身份验证请求将在基本上随机的服务器上运行,并且如果您的系统架构正确,从客户端的角度来看,它将是无缝的。

如果您有一个中等成功的站点,有几百个用户同时登录,您将需要几台服务器。。。简短回答:不,这不会成为瓶颈……但是bcrypt是否比任何其他哈希算法的可伸缩性都要低?不一定,它可能只是比其他方法具有更高的资源需求。