PHP 哈希函数

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)