PHP Conference Japan 2024

password_verify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_verify验证密码是否与哈希值匹配

描述

password_verify(#[\SensitiveParameter] string $password, string $hash): bool

验证给定的哈希值是否与给定的密码匹配。password_verify()crypt() 兼容。因此,由 crypt() 创建的密码哈希值可以与 password_verify() 一起使用。

请注意,password_hash() 将算法、成本和盐作为返回哈希的一部分返回。因此,验证哈希所需的所有信息都包含在其中。这允许验证函数在不需要单独存储盐或算法信息的情况下验证哈希。

此函数可以防止时序攻击。

参数

password

用户的密码。

hash

password_hash() 创建的哈希值。

返回值

如果密码和哈希值匹配,则返回 true,否则返回 false

示例

示例 #1 password_verify() 示例

这是一个简化的示例;建议根据需要重新哈希正确的密码;有关示例,请参阅 password_needs_rehash()

<?php
// 请参阅 password_hash() 示例以了解其来源。
$hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

if (
password_verify('rasmuslerdorf', $hash)) {
echo
'密码有效!';
} else {
echo
'无效密码。';
}
?>

以上示例将输出

Password is valid!

参见

添加注释

用户贡献的注释

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