パスワード ハッシングと DB への保存を学習しているときに、次の記事を見つけました: https://crackstation.net/hashing-security.htm#phpsourcecode
この機能以外はすべて明確でしたが、なぜ通常の等価性を使用しないのか正確に理解できませんか? 2 つの文字列 $a と $b を長さ一定時間で比較します。
// Compares two strings $a and $b in length-constant time.
function slow_equals($a, $b)
{
$diff = strlen($a) ^ strlen($b);
for($i = 0; $i < strlen($a) && $i < strlen($b); $i++)
{
$diff |= ord($a[$i]) ^ ord($b[$i]);
}
return $diff === 0;
}