我已经做了很多关于在数据库中安全存储密码的研究,bcrypt似乎是最安全的散列算法之一,所以我可能会用它来存储我网站的密码(用PHP编写)。它的一个主要卖点似乎是它非常慢,因此有助于减缓暴力/字典攻击。从字面上讲,我读到的每一篇文章都提到bcrypt是多么伟大,因为它速度很慢,因此可以防止暴力攻击。
所以,我的问题是:我不能使用PHP的sleep()在登录失败后手动让我的代码暂停一两秒钟吗?为什么bcrypt速度慢如此重要?我的印象是,我可以使用任何加密算法(假设它和bcrypt一样加密),在登录失败时添加PHP sleep(),并且可以像bcrypt一样很好地防御暴力破解/字典攻击。
发布于 2012-04-19 16:14:52
bcrypt和强制登录延迟可防止两种不同的攻击。
强制延迟登录可防止online攻击,攻击者会使用您的登录页尝试不同的密码。
增加了对离线攻击的保护,在这种情况下,攻击者可以访问您的密码散列,并且可以在不使用登录页面的情况下尝试散列。
https://stackoverflow.com/questions/10223983
复制相似问题