【问题标题】:password_verify function very slowpassword_verify 功能非常慢
【发布时间】:2016-06-26 12:12:17
【问题描述】:

您可以在此处看到的测试示例:https://3v4l.org/elrB8(1.1 - 1.3 秒),我的服务器上使用 PHP 5.6 的相同代码运行大约 27-57 秒。

哪些因素会导致减速? 哪些 PHP 设置会影响此功能?

cost 和 PASSWORD_DEFAULT 在两台服务器上都是一样的。

【问题讨论】:

  • 两台服务器的成本相同,但时间相差很大
  • 服务器性能不同?请记住,它旨在使服务器努力工作。这就是为什么它很慢。您需要了解运行它的服务器的速度。您可能需要在不同的服务器上使用不同的 cost 参数。

标签: php hash password-protection


【解决方案1】:

这就是cost 参数的用途。更多的成本等于更多的散列,这需要更长的时间来计算,而且还有潜在的破解者想要通过暴力破解密码。

所以有点意料之中,并且希望 password_hash 花费的时间超过一纳秒,您必须稍微玩一下 cost 看看什么最适合您,但同样,它不应该太快!

如果我没记错的话,bcrypt 目前是默认的 hasing 算法,bcrypt 的成本不是线性的。您会看到 cost 的增长呈指数级增长。

【讨论】:

  • 但两台服务器的成本相同,但时间相差很大
  • 那么使用的算法可能是不同的。或者其中一台服务器可能只是忙于做其他工作,或者没有另一台服务器那么快。
  • 更多时间不会产生“更好的哈希”,成本因素的全部意义在于花费大量时间,从而限制了攻击者暴力破解密码的能力。
猜你喜欢
  • 2014-10-19
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 2021-05-24
  • 2020-07-30
  • 1970-01-01
  • 2014-06-05
  • 2010-10-24
相关资源
最近更新 更多