使用bcrypt登录sleep()表单


Login form sleep() with bcrypt

如果密码是用password_hash($password, PASSWORD_DEFAULT)['cost' => 12] 通过bcrypt存储的,那么使用sleep()来阻止暴力攻击有意义吗

登录表单使用标准password_verify

if (!password_verify($password, $check_password)) {

我注意到,将成本增加到16将显著增加提交时的登录时间。它的工作方式与sleep()相同吗?如果是,它能被用来DOS服务器吗?

成本因素旨在阻止离线暴力攻击(即在有人从数据库中获取哈希之后)。Bcrypt对于实用的在线暴力攻击来说已经太慢了。例外:如果你的密码是10000个最常见的密码之一,那么猜测起来就很简单了。你想要的不是增加成本因素,而是专注于限制登录尝试的速率。