以下常量始终作为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 算法创建新的密码哈希。
支持的选项
memory_cost
(整数) - 计算 Argon2 哈希时可以使用到的最大内存(以 kibibytes 为单位)。默认为 PASSWORD_ARGON2_DEFAULT_MEMORY_COST
。
time_cost
(整数) - 计算 Argon2 哈希可能花费的最大时间。默认为 PASSWORD_ARGON2_DEFAULT_TIME_COST
。
threads
(整数) - 用于计算 Argon2 哈希的线程数。默认为 PASSWORD_ARGON2_DEFAULT_THREADS
。仅在 libargon2 中可用,libsodium 实现中不可用。
从 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_BCRYPT 、PASSWORD_ARGON2I 、PASSWORD_ARGON2ID 和 PASSWORD_DEFAULT )现在是字符串。以前,它们是整数。 |