PHP
加密 | Cryptography

hash_equals

hash_equals

(PHP 5 >= 5.6.0, PHP 7)

hash_equals — 定时攻击安全字符串比较

描述

bool hash_equals ( string $known_string , string $user_string )

使用相同的时间比较两个字符串,不管它们是否相等。

这个功能应该用来缓解定时攻击;;例如,在测试crypt()密码哈希值时。

参数

known_string

已知长度的字符串进行比较

user_string

用户提供的字符串

返回值

两个字符串相等时返回TRUE,否则返回FALSE

错误/异常

当提供的参数不是字符串时,发出E_WARNING消息。

例子

示例#1 hash_equals()示例

<?php $expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$' $correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$' $incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$' var_dump(hash_equals($expected, $correct) var_dump(hash_equals($expected, $incorrect) ?>

上面的例子将输出:

bool(true) bool(false)

笔记

注意

注意

← hash_copy

hash_file →