密码哈希函数

在 PHP 5.5 之前,你可以使用兼容包来提供 password_*功能。如果能够这样做,强烈建议你使用兼容包。

无论有没有兼容包,通过 crypt() 正确的 Bcrypt 功能都依赖于 PHP 5.3.7+, 否则你必须将密码限制为仅限 ASCII 的字符集。

注意: 如果你使用 PHP 5.5 或更低版本,则使用不受支持的 PHP 版本,版本不再接收任何安全更新。尽快更新,之后可以更新密码哈希值。

算法选择

安全算法

不安全的算法

以下散列算法不安全或不适合用途,因此不应使用。它们从不适合密码散列,因为它们是为快速摘要而设计的,而不是缓慢而难以强制密码哈希。

如果你使用其中任何一个,甚至包括盐,你应该切换到推荐的安全算法之一**,尽快**。

算法被认为是不安全的:

有些算法可以安全地用作消息摘要算法来证明真实性,但绝不能用作密码散列算法

  • SHA-2
  • SHA-3

注意,强大的哈希值如 SHA256 和 SHA512 是完整且稳健的,但是使用 bcryptargon2 哈希函数通常更安全,因为对这些算法的暴力攻击对于经典计算机来说要困难得多。