预定义常量

以下常量始终作为 PHP 核心的一部分可用。

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT 用于使用CRYPT_BLOWFISH 算法创建新的密码哈希。

这将始终导致使用 "$2y$" crypt 格式的哈希,其宽度始终为 60 个字符。

支持的选项

  • salt (string) - 手动提供用于对密码进行哈希的盐。请注意,这将覆盖并阻止自动生成盐。

    如果省略,password_hash() 将为每个哈希密码自动生成随机盐。这是预期的操作模式,从 PHP 7.0.0 开始,盐选项已弃用。

  • cost (int) - 表示应使用的算法成本。可以在 crypt() 页面上找到这些值的示例。

    如果省略,将使用默认值 10。这是一个良好的基线成本,但您可能需要根据您的硬件考虑将其增加。

PASSWORD_BCRYPT_DEFAULT_COST (int)

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I 用于使用 Argon2i 算法创建新的密码哈希。

支持的选项

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID 用于使用 Argon2id 算法创建新的密码哈希。它支持与 PASSWORD_ARGON2I 相同的选项。

从 PHP 7.3.0 开始可用。

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

尝试计算哈希时将使用的默认内存量(以字节为单位)。

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

尝试计算哈希时将花费的默认时间量。

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Argon2lib 将使用的默认线程数。在 libsodium 实现中不可用。

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_PROVIDER (string)

从 PHP 7.4.0 开始可用。

PASSWORD_DEFAULT (mixed)

如果没有提供算法,则用于哈希的默认算法。当支持更新、更强大的哈希算法时,这可能会在较新的 PHP 版本中发生变化。

值得注意的是,随着时间的推移,此常量可能会(而且很可能)发生变化。因此,您应该知道生成的哈希的长度可能会发生变化。因此,如果您使用PASSWORD_DEFAULT,您应该以可以存储超过 60 个字符(推荐宽度为 255 个字符)的方式存储生成的哈希。

此常量的值

变更日志

版本 描述
7.4.0 密码算法 ID(PASSWORD_BCRYPTPASSWORD_ARGON2IPASSWORD_ARGON2IDPASSWORD_DEFAULT)的值现在为 string。以前,它们是 int

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top