在我看来,此函数与 hash_equals() 函数的功能相同。hash_equals() 与哈希实际上没有任何关系,它只是一个恒定时间的字符串相等性检查函数,显然与 sodium_memcmp() 一样。
(PHP 7 >= 7.2.0, PHP 8)
sodium_memcmp — 以恒定时间测试相等性
以恒定时间比较两个字符串。
实际上,你几乎总是想使用 hash_equals(),因为它提供相同的逻辑,但返回 bool 而不是 int。但是,如果你在时间敏感的计算中使用比较的返回值,并且担心 bool 到 int 转换的计时泄漏,sodium_memcmp() 是理想的替代方案。
string1
要比较的字符串
string2
另一个要比较的字符串
如果两个字符串相等,则返回 0
;否则返回 -1
。
在我看来,此函数与 hash_equals() 函数的功能相同。hash_equals() 与哈希实际上没有任何关系,它只是一个恒定时间的字符串相等性检查函数,显然与 sodium_memcmp() 一样。