PHP Conference Nagoya 2025

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-to-int, функция sodium_memcmp() — идеальная замена.

Список параметров

string1

Строка для сравнения.

string2

Другая строка для сравнения.

Возвращаемые значения

Функция возвращает 0, если обе строки равны; иначе -1.

Добавить

Примечания пользователей 1 note

up
-1
divinity76 at gmail dot com
5 years ago
seems to me that this function does the same as the hash_equals() function. hash_equals() has nothing to do with hashes really, it is just a constant-time string equality check function, apparently like sodium_memcmp()
To Top