📜  PHP | hash_equals()函数(1)

📅  最后修改于: 2023-12-03 14:45:16.839000             🧑  作者: Mango

PHP | hash_equals()函数

在PHP中,hash_equals()函数用来比较两个字符串的哈希值是否相同。

语法
bool hash_equals ( string $known_string , string $user_string )
参数
  • known_string : 必需,指定已知的字符串。
  • user_string : 必需,指定用户输入的字符串。
返回值

如果两个字符串的哈希值相同,则返回true。否则,返回false。

示例
$hash1 = hash('sha256', 'myPassword');
$hash2 = hash('sha256', 'myPassword');
if (hash_equals($hash1, $hash2)) {
    echo 'Password is correct!';
} else {
    echo 'Password is incorrect!';
}
注意事项
  • hash_equals()函数在比较时会对两个字符串执行常量时间哈希算法,以避免计时攻击。
  • 在PHP 5.6之前的版本中,可以使用strcmp()函数来比较哈希值,但这种方法容易受到计时攻击的影响。
  • 在使用hash_equals()函数比较两个字符串时,应使用预防措施,例如限制尝试次数和使用验证码。