PHP hash_equals() 函数使用相同的时间比较两个字符串是否相等。此函数用于减轻计时攻击,例如,在测试 crypt() 密码哈希值时。
语法
hash_equals(known_string, user_string)
参数
known_string | 必需。 指定要比较的已知长度的字符串。 |
user_string | 必需。 指定用户提供的字符串。 |
返回值
当两个字符串相等时返回 true,否则返回 false .
异常
当提供的任一参数不是字符串时,发出 E_WARNING 消息。
示例:hash_equals()示例
下面的示例显示了hash_equals()函数的用法。
<?php
//以$1$开头的12个字符盐
$known_string = crypt('CorrectPassword', '$1$mypasswo$');
$correct = crypt('CorrectPassword', '$1$mypasswo$');
$incorrect = crypt('WrongPassword', '$1$mypasswo$');
//比较字符串并显示结果
var_dump(hash_equals($known_string, $correct));
var_dump(hash_equals($known_string, $incorrect));
?>
上述代码的输出将是:
bool(true)
bool(false)