2024年PHP开发者大会日本站

预定义常量

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

PASSWORD_BCRYPT (字符串)

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

这将始终生成使用“$2y$” crypt 格式的哈希,其长度始终为 60 个字符。

支持的选项

  • salt (字符串) - 手动提供用于哈希密码的salt。 请注意,这将覆盖并阻止自动生成salt。

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

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

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

PASSWORD_BCRYPT_DEFAULT_COST (整数)

PASSWORD_ARGON2I (字符串)

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

支持的选项

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2ID (字符串)

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

从 PHP 7.3.0 开始可用。

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (整数)

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

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_DEFAULT_TIME_COST (整数)

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

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_DEFAULT_THREADS (整数)

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

从 PHP 7.2.0 开始可用。

PASSWORD_ARGON2_PROVIDER (字符串)

从 PHP 7.4.0 开始可用。

PASSWORD_DEFAULT (字符串)

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

值得注意的是,此常量会随着时间的推移而变化。因此,必须注意生成的哈希的长度可能会发生变化。因此,当使用 PASSWORD_DEFAULT 时,生成的哈希必须以可以存储任意哈希的方式存储,推荐的宽度为 255 字节。

目前是 PASSWORD_BCRYPT 的别名。

变更日志

版本 描述
7.4.0 密码算法 ID 的值(PASSWORD_BCRYPTPASSWORD_ARGON2IPASSWORD_ARGON2IDPASSWORD_DEFAULT)现在是字符串。以前,它们是整数

添加注释

用户贡献的注释

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