hash_equals

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

hash_equals — Порівнює рядки без ризику атаки за часом

Опис

hash_equals(string $known_string, string $user_string): bool

Порівнює два рядки на ідентичність так, що значення параметра known_string не можна розкрити методами, що базуються на знанні часу виконання функції.

Цю функцію можна застосовувати для зниження ризику атак часу. Звичайне порівняння через оператор === буде займати різний час залежно від того, різні це значення чи ні і в якій позиції перша відмінність буде знайдена, так розкривається значення параметра known_string

Застереження

Увага! Передавати отриманий від користувача рядок необхідно на другий параметр, а не на перший.

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

known_string

Відомий рядок (string), який має триматися в секреті.

user_string

Користувальницький рядок (string) для порівняння.

Значення, що повертаються

Повертає true, якщо рядки ідентичні, та false, якщо ні.

Приклади

Приклад #1 Приклад використання hash_equals()****

Loading...

Результат виконання наведеного прикладу:

Значение подписано правильно.

Примітки

Зауваження :

Для успішного порівняння обидва аргументи мають бути однієї довжини. Якщо передано аргументи різної довжини, то буде негайно повернено false і довжина відомого рядка може бути визначена у разі атаки за часом.

Дивіться також

  • hash_hmac() - Генерація хеш-коду на основі ключа, використовуючи метод HMAC