hash_hkdf
(PHP 7 >= 7.1.2)
hash_hkdf — Génère une dérivation de clé HKDF Generate depuis une clé fournis
Description
$algo
, string $ikm
[, int $length
= 0
[, string $info
= ''
[, string $salt
= ''
]]] ) : stringListe de paramètres
-
algo
-
Nom de l'algorithme de hachage sélectioné (par exemple : "sha256", "sha512", "haval160,4", etc...) Voir hash_algos() pour une liste d'algorithmes supporté.
Note:
Les fonctions de hachages qui ne sont pas cryptographique sont interdite.
-
ikm
-
Données (Input keying material) en binaire qui serviront au clavetage. Ne peut pas être vide.
-
length
-
Longueur désiré des données de sortie en octets. Ne peut être plus grand que 255 fois la taille de la fonction de hachage.
Si
length
vaut 0, la longueur des données de sortie sera par défaut la taille de la function de hachage choisie -
info
-
Information sous forme de chaîne de caractères spécifique à l'Application/contexte.
-
salt
-
Sel à utiliser lors de la dérivation.
Bien qu'optionel, ajouté un sel aléatoire augmente de façon significative la robustesse de HKDF.
Valeurs de retour
Retourne un chaîne de caractères contenant une représentation binaire brut de la clé dérivé
(aussi connue sous le nom de output keying material - OKM) ; ou FALSE
en cas d'échec.
Erreurs / Exceptions
Une E_WARNING
sera émise si ikm
est vide, algo
est inconnue/pas cryptographique,
length
est moins que 0 ou trop grand
(plus grand que 255 fois la taille de la fonction de hachage).
Exemples
Exemple #1 Exemple avec hash_hkdf()
<?php
// Génère une clé aléatoire, et un sel pour la renvorcer lors de la dérivation.
$inputKey = random_bytes(32);
$salt = random_bytes(16);
// Dérive une paire de clés séparé, utilisant les mêmes données crée juste avant.
$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)
?>
L'exemple ci-dessus produit une paire de clés séparé, qui convient à la création d'une construction chiffrer-puis-HMAC (encrypt-then-HMAC), en utilisant AES-256 et SHA-256 pour le chiffrement et l'authentification respectivement.
Voir aussi
- hash_pbkdf2() - Génère une clé PBKDF2 dérivée du mot de passe fourni
- » RFC 5869
- » userland implementation
Version en cache
23/12/2024 12:56:53 Cette version de la page est en cache (à la date du 23/12/2024 12:56:53) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.hash-hkdf.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.