弘扬国学 · 传承文化
查询

hash_equals()函数—用法及示例

「 比较两个字符串是否相等,但不会受到时序攻击的影响 」


函数名:hash_equals()

适用版本:PHP 5 >= 5.6.0, PHP 7

函数描述:hash_equals() 函数用于比较两个字符串是否相等,但不会受到时序攻击的影响。它在比较过程中会对字符串进行常量时间的比较,以防止计时攻击。

用法: hash_equals(string $known_string, string $user_string): bool

参数:

  • $known_string:已知的字符串,通常是正确的值。
  • $user_string:用户提供的字符串,需要进行比较的值。

返回值: 如果两个字符串相等,则返回 true,否则返回 false。

示例:

<?php
$known_string = "password123";
$user_string = $_POST['password'];

if (hash_equals($known_string, $user_string)) {
    echo "密码正确!";
} else {
    echo "密码错误!";
}
?>

在上面的示例中,我们通过 hash_equals() 函数比较用户提供的密码与已知密码来进行密码验证。无论用户提供的密码是否正确,函数都会以常量时间进行比较,以避免时序攻击。如果两个字符串相等,则输出 "密码正确!",否则输出 "密码错误!"。

补充纠错
上一个函数: hash_file()函数
下一个函数: hash_copy()函数
热门PHP函数
分享链接