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.
Derivación de claves PBKDF2 y HKDF — Estira 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
- Elige PBKDF2 o HKDF con el conmutador de arriba, según la función que use tu código o tu vector de prueba.
- Escribe o pega tu contraseña (PBKDF2) o tu secreto de alta entropía (HKDF) en el campo Secreto y luego introduce una sal.
- Para PBKDF2 fija el número de iteraciones; para HKDF define la etiqueta info opcional que liga la clave a un contexto.
- Elige el hash (SHA-256, SHA-384, SHA-512 o SHA-1) y la longitud de salida en bits.
- 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
Cifrado de texto AES (AES-GCM + PBKDF2)
Cifra y descifra texto con AES-GCM usando una clave derivada de una frase de contraseña (PBKDF2 SHA-256), todo en tu navegador y sin subir nada.
Hash Argon2 y scrypt
Genera el hash de una contraseña con Argon2id o scrypt y verifica un hash Argon2 contra una contraseña, todo en tu navegador.
Generador y Verificador de Hash Bcrypt
Genera un hash bcrypt de una contraseña en texto plano con el factor de coste que elijas, o verifica una contraseña contra un hash bcrypt existente, todo en tu navegador.
Generador de mnemónicos BIP39
Genera una frase de recuperación BIP39 aleatoria de 12 a 24 palabras en varios idiomas, o convierte un mnemónico existente de vuelta en su entropía original, todo en tu navegador.