Derivación de claves PBKDF2 y HKDF

Deriva una clave a partir de una contraseña o secreto con PBKDF2 o HKDF, eligiendo la sal, el número de iteraciones o la etiqueta info, el hash y la longitud de salida, y léela en hexadecimal o base64, todo en tu navegador.

Cargando herramienta…

Derivación de claves PBKDF2 y HKDFEstira una contraseña hasta convertirla en una clave PBKDF2, o expande un secreto de alta entropía en subclaves con nombre mediante HKDF, sin que nada salga de tu equipo. Elige el hash, define la sal y las iteraciones (PBKDF2) o la etiqueta info (HKDF), indica cuántos bits de salida necesitas y copia la clave derivada en hexadecimal o base64. Cada byte se calcula localmente con la Web Crypto API nativa (crypto.subtle.deriveBits), así que tu contraseña y tu secreto nunca tocan un servidor.

¿Qué es Derivación de claves PBKDF2 y HKDF?

La Derivación de claves PBKDF2 y HKDF es una herramienta gratuita en el navegador que ejecuta las dos funciones de derivación de claves más habituales entre desarrolladores. PBKDF2 (función de derivación de clave basada en contraseña 2) ralentiza deliberadamente la fuerza bruta repitiendo un HMAC muchos miles de veces, convirtiendo una contraseña humana más una sal en una clave de longitud fija. HKDF (función de derivación de clave basada en HMAC) toma un secreto que ya tiene suficiente entropía y lo expande en una o varias subclaves ligadas a un contexto usando una etiqueta info, ideal para derivar claves de cifrado y de autenticación separadas a partir de un único secreto maestro. Ingenieros de backend, revisores de seguridad y cualquiera que escriba código de login o cifrado la usan para probar vectores, reproducir la derivación de un servidor o generar claves para una tarea puntual. Usa el conmutador PBKDF2/HKDF para cambiar de algoritmo, elige SHA-256, SHA-384, SHA-512 o SHA-1, fija la longitud de salida en bits y lee el resultado en hexadecimal o base64.

Cómo usar Derivación de claves PBKDF2 y HKDF

  1. Elige PBKDF2 o HKDF con el conmutador de arriba, según la función que use tu código o tu vector de prueba.
  2. Escribe o pega tu contraseña (PBKDF2) o tu secreto de alta entropía (HKDF) en el campo Secreto y luego introduce una sal.
  3. Para PBKDF2 fija el número de iteraciones; para HKDF define la etiqueta info opcional que liga la clave a un contexto.
  4. Elige el hash (SHA-256, SHA-384, SHA-512 o SHA-1) y la longitud de salida en bits.
  5. Cambia el conmutador hexadecimal / base64 a la codificación que necesites y copia la clave derivada con el botón de copiar.

Ejemplos

PBKDF2: clave de 256 bits a partir de una contraseña

Entrada

Secreto: correct horse battery staple
Sal: a1b2c3d4
Hash: SHA-256, Iteraciones: 100000, Bits: 256

Salida

una cadena hexadecimal de 64 caracteres (32 bytes) reproducible con la misma contraseña, sal, hash y número de iteraciones

HKDF: subclave ligada al contexto a partir de un secreto maestro

Entrada

Secreto: 9f8e7d6c…(clave maestra)
Sal: session-2024
Info: aes-gcm-encryption
Hash: SHA-256, Bits: 256

Salida

una clave de 256 bits distinta de la que da el mismo secreto con Info: hmac-authentication, de modo que un maestro produce subclaves independientes

Salida más corta en base64

Entrada

Bits: 128, codificación cambiada a base64

Salida

una cadena base64 de 24 caracteres que codifica los primeros 16 bytes derivados

Preguntas frecuentes

¿Se envía mi contraseña o secreto a algún sitio?
No. El Secreto, la sal y la info permanecen en tu navegador. La clave se deriva localmente con la Web Crypto API (crypto.subtle.deriveBits) y no se sube ni se almacena nada en ningún servidor, así que la herramienta funciona sin conexión y tus datos nunca salen de la página.
¿Cuándo debo usar PBKDF2 y cuándo HKDF?
Usa PBKDF2 para derivar una clave a partir de una contraseña humana de baja entropía: su número de iteraciones ralentiza la fuerza bruta. Usa HKDF cuando ya tengas un secreto de alta entropía (una clave maestra o un secreto compartido) y quieras expandirlo en una o varias subclaves separadas mediante la etiqueta info. HKDF es rápida y no sustituye al estiramiento de contraseñas de PBKDF2.
¿Por qué se redondea la longitud de salida?
El deriveBits de Web Crypto trabaja en bytes completos, así que la longitud de salida en bits se redondea al múltiplo de 8 más cercano. La estadística bajo el resultado muestra los bits y bytes realmente producidos.
¿Qué hashes y algoritmos admite?
Ambos algoritmos funcionan con SHA-256, SHA-384, SHA-512 o SHA-1, los hashes que la Web Crypto del navegador expone para PBKDF2 y HKDF. No se ofrecen scrypt, Argon2 ni bcrypt porque los navegadores no los implementan de forma nativa.
¿Las mismas entradas darán siempre la misma clave?
Sí. La derivación de claves es determinista: el mismo algoritmo, secreto, sal, hash, longitud de salida e iteraciones (PBKDF2) o info (HKDF) producen siempre los mismos bytes, por eso puedes usarla para reproducir o verificar una clave que derivó tu servidor.

Herramientas relacionadas