我在 php 中看到了许多哈希密码的方法:crypt()、md5()、sha1()
在 php 中散列密码的最佳和流行的方法是什么?
我建议使用带有控制工作量的参数的“慢”散列函数。这意味着您可以限制独立于算法本身来破解密码所需的蛮力。一个例子是bcrypt。
不要尝试创建自己的哈希函数。始终依赖专业人士久经考验的算法。如果你单干,你几乎肯定会引入一个漏洞。不要使用 MD5,因为用现代 GPU 破解它相对简单。
这个答案讨论了 bcrypt、它的参数以及如何在 PHP 中使用它来散列密码:
关于为什么快速哈希(例如 MD5 和 SHA1)对密码安全来说是个坏消息,这是一个非常有趣的诽谤:
http://codahale.com/how-to-safely-store-a-password/
就人气而言,我不会太在意。客户数据的安全性比其他任何事情都重要。