函数名: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() 函数比较用户提供的密码与已知密码来进行密码验证。无论用户提供的密码是否正确,函数都会以常量时间进行比较,以避免时序攻击。如果两个字符串相等,则输出 "密码正确!",否则输出 "密码错误!"。