hash_hkdf
(PHP 7 >= 7.1.2, PHP 8)
hash_hkdf — Формування ключа HKDF для заданих вхідних даних
Опис
hash_hkdf( string $algo, string $key, int $length = 0, string $info = "", string $salt = ""): string
Список параметрів
algo
Ім'я вибраного хешируючого алгоритму (наприклад, "sha256", "sha512", "haval160,4" і т.д.) Список підтримуваних алгоритмів можна переглянути в описі функції hash_algos()
Зауваження :
Не криптографічні функції, що хешують, не допускаються.
key
Вхідні дані (необроблені бінарні дані). Не може бути порожнім.
length
Вибрана довжина виведення у байтах. Не може бути більш ніж у 255 разів більше розміру обраної функції, що хешує.
Якщо length
установлено как , то висновок по довжині дорівнюватиме розміру обраної функції, що хешує.
info
Інформаційний рядок, специфічний для застосування/контексту.
salt
Сіль, що використовується для формування ключа.
Хоча необов'язково, але додавання випадкової солі значно покращує силу HKDF.
Значення, що повертаються
Повертає рядок, що містить необроблені бінарні дані, що становлять сформований ключ.
Помилки
Викидається ValueError, якщо параметр key
пуст, в параметреalgo
вказано невідомий або криптографічний алгоритм, параметр length
меньше або дуже великий (більш ніж у 255 разів більше за розмір хеш-функції).
список змін
Версия | Опис |
---|---|
8.0.0 | Тепер викидається винятокValueError у разі виникнення помилки; раніше видавалася помилка рівня E_WARNING і поверталося значення false |
Приклади
Приклад #1 Приклад використання hash_hkdf()****
Loading...
У прикладі вище створена пара різних ключів, придатних для створення конструкції encrypt-then-HMAC, використовуючи AES-256 та SHA-256 для кодування та аутентифікації відповідно.
Дивіться також
- hash_pbkdf2() - Формування ключа PBKDF2 для заданих вхідних даних
- » RFC 5869
- » користувацька реалізація