1. 程式人生 > >hash_equals 判斷 字串值是否相等

hash_equals 判斷 字串值是否相等

hash_equals

是可防止時序攻擊的字串比較,那麼什麼是時序攻擊呢?比如這段程式碼我們使用

        $verifyData['code'] == $request->verification_code

進行比較,那麼兩個字串是從第一位開始逐一進行比較的,發現不同就立即返回 false,那麼通過計算返回的速度就知道了大概是哪一位開始不同的,這樣就實現了電影中經常出現的按位破解密碼的場景。而使用 hash_equals 比較兩個字串,無論字串是否相等,函式的時間消耗是恆定的,這樣可以有效的防止時序攻擊。

所以 建議使用

         hash_equals($verifyData
['code'], $request->verification_code)