Php 使用bcrypt登录表单sleep()

Php 使用bcrypt登录表单sleep(),php,security,login,Php,Security,Login,如果bcrypt使用password\u散列($password,password\u DEFAULT)和['cost'=>12]存储密码,那么使用sleep()来阻止暴力攻击有什么意义 登录表单使用标准的密码\u验证 if (!password_verify($password, $check_password)) { 我注意到将成本增加到16将显著增加提交时的登录时间。它的工作方式是否与sleep()相同?如果是,是否可以利用它来关闭服务器?成本因素旨在阻止脱机暴力攻击(即,在有人从数据库

如果bcrypt使用
password\u散列($password,password\u DEFAULT)
['cost'=>12]存储密码,那么使用sleep()来阻止暴力攻击有什么意义

登录表单使用标准的
密码\u验证

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

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

成本因素旨在阻止脱机暴力攻击(即,在有人从数据库中获取哈希值后)。Bcrypt对于实际的在线暴力攻击来说已经太慢了。例外情况:如果您的密码是其中之一,则很容易猜测。您想要的不是增加成本因素,而是专注于。

谢谢。拒绝服务攻击呢?他们能像使用sleep()一样利用bcrypt的时间开销吗?
sleep()
不是DoS向量;bcrypt可以是。选择一个可接受的成本参数(即125毫秒->每秒每核心8次登录是您的身份验证瓶颈)。最好通过要求工作证明对客户端进行评级限制。使用户代理计算出大量的素数因子。在服务器上验证的速度非常快,但在客户端上计算的速度非常慢