sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp在恒定时间内测试相等性

说明

sodium_memcmp(#[\SensitiveParameter] string $string1, #[\SensitiveParameter] string $string2): int

在恒定时间内比较两个字符串。

实际上,您几乎总是想使用 hash_equals(),因为它提供相同的逻辑,但返回 bool 而不是 int。但是,如果您在时间敏感的计算中使用比较的返回值,并且担心 bool 到 int 转换的定时泄漏,sodium_memcmp() 是一个理想的替代品。

参数

string1

要比较的字符串

string2

要比较的另一个字符串

返回值

如果两个字符串相等,则返回 0;否则返回 -1

添加注释

用户贡献注释 1 个注释

divinity76 at gmail dot com
4 年前
在我看来,此函数与 hash_equals() 函数的作用相同。hash_equals() 与哈希实际上无关,它只是一个恒定时间字符串相等性检查函数,显然与 sodium_memcmp() 一样。
To Top