hash_equals

Timing attack safe string comparison

Syntax

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

Parameters

known_string

The string of known length to compare against

user_string

The user-supplied string

Return

Returns true when the two strings are equal, false otherwise.

Examples

1 · known_string user_string · equal

<?

$known_string = hash('sha384', 'Hello');
$user_string = hash('sha384', 'Hello');

$return = hash_equals($known_string, $user_string);

var_export($return);

?>
true

2 · known_string user_string · unequal algorithm

<?

$known_string = hash('sha384', 'Hello');
$user_string = hash('md5', 'Hello');

$return = hash_equals($known_string, $user_string);

var_export($return);

?>
false

3 · known_string user_string · unequal data

<?

$known_string = hash('sha384', 'Hello');
$user_string = hash('sha384', 'Good-bye');

$return = hash_equals($known_string, $user_string);

var_export($return);

?>
false
HomeMenu