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