Password_verify函数非常慢


password_verify function very slow

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

哪些因素会导致减速?哪些PHP设置会影响这个函数?

cost和PASSWORD_DEFAULT在两个服务器上是相同的

这就是cost参数的作用。更多的成本等于更多的哈希,这需要更长的计算时间,但也需要潜在的破解者想要通过暴力破解密码。

因此,password_hash花费的时间比一纳秒要长,您必须使用cost来看看什么最适合您,但是再次强调,它不应该太快!

如果我没记错的话,bcrypt目前是默认的哈希算法,bcrypt的成本不是线性的。当cost增加时,你会看到一个指数级的时间增长。