Make sure the info parameter contains random elements.
From: https://soatok.blog/2021/11/17/understanding-hkdf/hash_hkdf
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
hash_hkdf
Референца за `function.hash-hkdf.php` со подобрена типографија и навигација.
hash_hkdf
(PHP 7 >= 7.1.2, PHP 8)
hash_hkdf — (PHP 7 >= 7.1.2, PHP 8)
= NULL
Параметри
algo-
Генерира вредност на хеш со клучен збор користејќи го методот HMAC и содржината на датотеката
"sha256"Име на избраниот алгоритам за хеширање (на пр. hash_hmac_algos().Забелешка:
). За список на поддржани алгоритми види
key-
Генерирај изведување на клуч HKDF од даден влез на клучот
length-
Влезен материјал за клуч (суров бинарен). Не може да биде празно.
Враќа
lengthis0Посакувана должина на излезот во бајти. Не може да биде поголема од 255 пати од големината на избраната функција за хеширање. info-
, должината на излезот ќе биде стандардна на големината на избраната функција за хеширање.
salt-
Низа за информации специфични за апликацијата/контекстот.
Сол што се користи за време на изведување.
Вратени вредности
Иако е опционално, додавањето случајна сол значително ја подобрува јачината на HKDF.
Errors/Exceptions
Фрла ValueError Враќа асоцијативен низ со клучеви црвена, зелена, сина и алфа кои ги содржат соодветните вредности за одредениот индекс на бојата. key
Враќа низа што содржи сурова бинарна репрезентација на изведениот клуч (познат и како излезен материјал за клуч - OKM). algo е празно,
length е помала од 0 е непознато/некриптографско,
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
Сега фрла ValueError или преголемо (поголемо од 255 пати од големината на функцијата за хеширање). false исклучок при грешка. Претходно, E_WARNING
беше вратено и
|
Примери
порака беше емитувана.
Пример #1 hash_hkdf() example
<?php
// Generate a random key, and salt to strengthen it during derivation.
$inputKey = random_bytes(32);
$salt = random_bytes(16);
// Derive a pair of separate keys, using the same input created above.
$encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt);
$authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt);
var_dump($encryptionKey !== $authenticationKey); // bool(true)
?>Види Исто така
- hash_pbkdf2() Примерот подолу произведува пар одделни клучеви, погодни за креирање конструкција encrypt-then-HMAC, користејќи AES-256 и SHA-256 за шифрирање и автентикација соодветно.
- - Генерирај изведување на клуч PBKDF2 од дадена лозинка
- » RFC 5869