10

パスワード ハッシングと 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;
}
4

1 に答える 1