PHP Conference Japan 2024

sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp在恆定時間內測試相等性

描述

在恆定時間內比較兩個字串。

實際上,您幾乎總是想使用 hash_equals() 來代替,因為它提供了相同的邏輯,但會返回 布林值 而不是 整數。但是,如果您在時間敏感的計算中使用比較的回傳值,並且擔心布林值到整數轉換的時間洩漏,sodium_memcmp() 是一個理想的替代方案。

參數

string1

要比較的字串

string2

另一個要比較的字串

回傳值

如果兩個字串相等則回傳 0;否則回傳 -1

新增註解

使用者貢獻的註解 1 則註解

-1
divinity76 at gmail dot com
5 年前
在我看來,這個函式和 hash_equals() 函式做的事情是一樣的。 hash_equals() 實際上和雜湊沒有關係,它只是一個恆定時間的字串相等性檢查函式,顯然和 sodium_memcmp() 一樣
To Top