Dérivation de clés PBKDF2 et HKDF

Dérivez une clé à partir d’un mot de passe ou d’un secret avec PBKDF2 ou HKDF, en choisissant le sel, le nombre d’itérations ou l’étiquette info, le hachage et la longueur de sortie, et relisez-la en hexadécimal ou base64, entièrement dans votre navigateur.

Chargement de l'outil…

Dérivation de clés PBKDF2 et HKDFÉtirez un mot de passe en clé PBKDF2, ou développez un secret à haute entropie en sous-clés nommées avec HKDF, sans que rien ne quitte votre machine. Choisissez le hachage, définissez le sel et le nombre d’itérations (PBKDF2) ou l’étiquette info (HKDF), indiquez combien de bits de sortie vous voulez, et copiez la clé dérivée en hexadécimal ou base64. Chaque octet est calculé localement avec l’API Web Crypto native (crypto.subtle.deriveBits), de sorte que votre mot de passe et votre secret ne touchent jamais un serveur.

Qu'est-ce que Dérivation de clés PBKDF2 et HKDF ?

La Dérivation de clés PBKDF2 et HKDF est un outil gratuit dans le navigateur qui exécute les deux fonctions de dérivation de clés les plus utilisées par les développeurs. PBKDF2 (Password-Based Key Derivation Function 2) ralentit délibérément la force brute en répétant un HMAC des milliers de fois, transformant un mot de passe humain plus un sel en une clé de longueur fixe. HKDF (HMAC-based Key Derivation Function) prend un secret qui a déjà assez d’entropie et le développe en une ou plusieurs sous-clés liées à un contexte à l’aide d’une étiquette info, idéal pour dériver des clés de chiffrement et d’authentification distinctes à partir d’un unique secret maître. Les ingénieurs backend, les relecteurs de sécurité et quiconque écrit du code de connexion ou de chiffrement l’utilisent pour tester des vecteurs, reproduire la dérivation d’un serveur ou générer des clés pour une tâche ponctuelle. Utilisez le commutateur PBKDF2/HKDF pour changer d’algorithme, choisissez SHA-256, SHA-384, SHA-512 ou SHA-1, définissez la longueur de sortie en bits et lisez le résultat en hexadécimal ou base64.

Comment utiliser Dérivation de clés PBKDF2 et HKDF

  1. Choisissez PBKDF2 ou HKDF avec le commutateur en haut, selon la fonction que votre code ou votre vecteur de test utilise.
  2. Saisissez ou collez votre mot de passe (PBKDF2) ou votre secret à haute entropie (HKDF) dans le champ Secret, puis entrez un sel.
  3. Pour PBKDF2, définissez le nombre d’itérations ; pour HKDF, définissez l’étiquette info facultative qui lie la clé à un contexte.
  4. Choisissez le hachage (SHA-256, SHA-384, SHA-512 ou SHA-1) et la longueur de sortie en bits.
  5. Réglez le commutateur hexadécimal / base64 sur l’encodage souhaité et copiez la clé dérivée avec le bouton de copie.

Exemples

PBKDF2 — clé de 256 bits à partir d’un mot de passe

Entrée

Secret : correct horse battery staple
Sel : a1b2c3d4
Hachage : SHA-256, Itérations : 100000, Bits : 256

Sortie

une chaîne hexadécimale de 64 caractères (32 octets) reproductible avec les mêmes mot de passe, sel, hachage et nombre d’itérations

HKDF — sous-clé liée au contexte à partir d’un secret maître

Entrée

Secret : 9f8e7d6c…(clé maître)
Sel : session-2024
Info : aes-gcm-encryption
Hachage : SHA-256, Bits : 256

Sortie

une clé de 256 bits différente de celle obtenue avec le même secret et Info: hmac-authentication, de sorte qu’un maître produit des sous-clés indépendantes

Sortie plus courte en base64

Entrée

Bits : 128, encodage basculé sur base64

Sortie

une chaîne base64 de 24 caractères encodant les 16 premiers octets dérivés

Questions fréquentes

Mon mot de passe ou mon secret est-il envoyé quelque part ?
Non. Le Secret, le sel et l’info restent dans votre navigateur. La clé est dérivée localement avec l’API Web Crypto (crypto.subtle.deriveBits), et rien n’est téléversé vers un serveur ni stocké dessus, de sorte que l’outil fonctionne hors ligne et que vos données ne quittent jamais la page.
Quand utiliser PBKDF2 plutôt que HKDF ?
Utilisez PBKDF2 pour dériver une clé à partir d’un mot de passe humain à faible entropie : son nombre d’itérations ralentit la force brute. Utilisez HKDF quand vous disposez déjà d’un secret à haute entropie (une clé maître ou un secret partagé) et que vous voulez le développer en une ou plusieurs sous-clés distinctes via l’étiquette info. HKDF est rapide et ne remplace pas l’étirement de mot de passe de PBKDF2.
Pourquoi ma longueur de sortie est-elle arrondie ?
Le deriveBits de Web Crypto travaille en octets entiers, donc la longueur de sortie en bits est arrondie au multiple de 8 le plus proche. La statistique sous le résultat indique les bits et octets réellement produits.
Quels hachages et algorithmes sont pris en charge ?
Les deux algorithmes fonctionnent avec SHA-256, SHA-384, SHA-512 ou SHA-1, les hachages que la Web Crypto du navigateur expose pour PBKDF2 et HKDF. Scrypt, Argon2 et bcrypt ne sont pas proposés car les navigateurs ne les implémentent pas nativement.
Les mêmes entrées donneront-elles toujours la même clé ?
Oui. La dérivation de clés est déterministe : les mêmes algorithme, secret, sel, hachage, longueur de sortie et nombre d’itérations (PBKDF2) ou info (HKDF) produisent toujours les mêmes octets, ce qui vous permet de reproduire ou de vérifier une clé dérivée par votre serveur.

Outils connexes