PBKDF2 Generador de Hash
Herramienta gratuita de PBKDF2 Generador de Hash en línea. Procesamiento 100% local — tus datos nunca salen de tu dispositivo.
El resultado se mostrará aquí...
Entrada → Calcular Hash
Usage Guide
Acerca de PBKDF2
PBKDF2 (Función de Derivación de Claves Basada en Contraseña 2) es una función de derivación de claves estandarizada en RFC 8018 (PKCS#5) y NIST SP 800-132. A diferencia de una función hash simple, PBKDF2 fue diseñada específicamente para derivar una clave criptográfica de una contraseña aplicando una función pseudoaleatoria (HMAC-SHA256 o HMAC-SHA512) cientos de miles de veces. Esto hace que los ataques de fuerza bruta sean computacionalmente costosos. PBKDF2 cumple con FIPS 140-2 y se usa ampliamente en cifrado de disco LUKS, Wi-Fi WPA2/WPA3, almacenamiento seguro de iOS/Android y gestores de contraseñas.
Pasos de uso
Esta herramienta admite dos operaciones: derivar una clave (modo Cifrar) y verificar una contraseña (modo Descifrar):
Guía de parámetros
PBKDF2 tiene cuatro parámetros clave que controlan la seguridad y la salida de la clave derivada:
PBKDF2 vs. Argon2 / bcrypt
Entendiendo cuándo elegir PBKDF2 sobre otros algoritmos de hash de contraseñas:
FAQ
Q: ¿Cuál es el formato de salida de PBKDF2?
A: Esta herramienta genera una cadena hash autónoma: {iteraciones}:{algoritmo}:{sal_base64}:{clave_derivada_hex}.
Por ejemplo: 600000:sha256:abc123...==:d4e5f6....
Componentes:iteraciones: Número de rondas HMAC utilizadas (p. ej., 600000).algoritmo: Función hash (sha256 o sha512).sal_base64: Sal aleatoria codificada en Base64.clave_derivada_hex: Clave derivada codificada en hexadecimal.
Para verificar, ingrese en modo Descifrar: contraseña|{cadena hash completa}.
Q: ¿Por qué PBKDF2 necesita 600.000 iteraciones?
A: PBKDF2 no es resistente a la memoria — puede ser paralelizado en GPU de forma económica. Una GPU moderna puede calcular aproximadamente 1–2 mil millones de iteraciones PBKDF2-SHA256 por segundo. Con 600.000 iteraciones por hash, eso sigue siendo ~1.600 intentos de hash por segundo por GPU. El alto conteo de iteraciones es el mecanismo de defensa principal — multiplica directamente el costo del atacante. OWASP 2023 establece 600.000 como mínimo para SHA-256; use 210.000 para SHA-512. Aumente estos valores con el tiempo.
Q: ¿En qué se diferencia PBKDF2 de bcrypt o Argon2?
A: PBKDF2: Solo resistente a cómputo, no a memoria. Paralelizable con GPU. Aprobado por FIPS 140-2. Requiere iteraciones muy altas. Ideal para entornos regulados por FIPS. bcrypt: Resistente a cómputo, ~4KB de memoria, moderada resistencia a GPU. Límite de 72 bytes en contraseña. No puede derivar claves de longitud arbitraria. Argon2id: Resistente a memoria, resistente a GPU/ASIC, preferencia moderna de OWASP. No aprobado por FIPS. Rendimiento a seguridad equivalente: Argon2 es significativamente más rápido que PBKDF2 al mismo nivel de seguridad efectiva gracias a la resistencia a memoria.
Q: ¿PBKDF2 cumple con FIPS 140-2?
A: Sí. PBKDF2 está explícitamente definido en NIST SP 800-132 y aprobado bajo FIPS 140-2. Esto lo convierte en la opción obligatoria para agencias federales de EE.UU., contratistas, sistemas de salud sujetos a HIPAA y aplicaciones financieras con requisitos PCI-DSS. Argon2 y scrypt no están aprobados por FIPS. Si se requiere cumplimiento FIPS, PBKDF2 es actualmente la única opción ampliamente disponible. Verifique que su implementación de PBKDF2 use un módulo criptográfico validado por FIPS.
Q: ¿Por qué es importante la sal y debe almacenarse?
A: La sal es un valor aleatorio que se agrega a la contraseña antes del hashing para garantizar que dos contraseñas idénticas produzcan claves derivadas diferentes. Sin sal, los atacantes pueden usar tablas rainbow precalculadas para descifrar múltiples hashes simultáneamente. La sal no necesita ser secreta — solo necesita ser única por contraseña. La sal está incluida en la cadena de salida y debe almacenarse junto con la clave derivada para reproducir el mismo hash durante la verificación. Nunca reutilice sales entre contraseñas.
Q: ¿Cómo uso PBKDF2 para derivación de claves AES?
A: Establezca la longitud de clave en 32 bytes (256 bits) para derivar directamente una clave AES-256. Use 600.000 iteraciones con SHA-256. Almacene la sal junto con sus datos cifrados. Durante el descifrado, vuelva a derivar la clave con la misma contraseña, sal, iteraciones y algoritmo, luego úsela para descifrar con AES-256-GCM. Así es exactamente como funcionan el cifrado de disco LUKS, la protección de datos de iOS y muchos gestores de contraseñas. La clave derivada es determinista — las mismas entradas siempre producen la misma clave — por lo que proteger la contraseña y usar sales únicas es fundamental.
Use Cases
Recomendado: Almacenamiento de contraseñas con cumplimiento FIPS
Las organizaciones sujetas a FIPS 140-2, NIST SP 800-131A, HIPAA o PCI-DSS deben usar algoritmos criptográficos aprobados. PBKDF2 con HMAC-SHA256 o HMAC-SHA512 es la única KDF de contraseñas ampliamente disponible que cumple estos requisitos. Use al menos 600.000 iteraciones para SHA-256 y almacene la cadena de salida completa. Esta es la razón principal para elegir PBKDF2 sobre Argon2id en entornos regulados.
- ✅ PBKDF2-HMAC-SHA256 (≥600.000 iteraciones) — cumple FIPS
- ✅ PBKDF2-HMAC-SHA512 (≥210.000 iteraciones) — cumple FIPS
- ❌ Argon2 / scrypt — no aprobados por FIPS 140-2
- ❌ bcrypt — no aprobado por FIPS 140-2
Recomendado: Derivación de claves para cifrado de disco (LUKS)
LUKS (Linux Unified Key Setup) usa PBKDF2 por defecto (LUKS1) y PBKDF2/Argon2 (LUKS2) para derivar la clave de cifrado del volumen desde una frase de contraseña. PBKDF2 deriva una clave de longitud fija (32 bytes para AES-256) de la contraseña del usuario, que luego se usa para cifrar la clave maestra almacenada en el encabezado LUKS. La seguridad WPA2/WPA3 de Wi-Fi también usa PBKDF2 para derivar la Clave Maestra de Par (PMK) desde la contraseña Wi-Fi.
- ✅ PBKDF2-HMAC-SHA512 (estándar LUKS1)
- ✅ Argon2id (preferido LUKS2 — mejor resistencia a memoria)
- 💡 Configure iteraciones suficientemente altas para que la derivación tome 0,5–2 segundos en el hardware objetivo
- 💡 Almacene la sal en los metadatos del disco/encabezado, nunca por separado
Aceptable: Verificación de contraseñas en sistemas heredados
Muchos sistemas existentes (versiones antiguas de Django, .NET Membership, Java PBKDF2WithHmacSHA1) ya almacenan hashes PBKDF2. Continúe usando PBKDF2 para estos sistemas y aumente gradualmente el conteo de iteraciones conforme mejore el hardware. Use el conteo de iteraciones almacenado para la verificación (está embebido en la cadena hash) y actualice a las recomendaciones actuales de OWASP para nuevos registros y cambios de contraseña. Esto evita reinicios forzados de contraseñas mientras mejora la seguridad con el tiempo.
- ✅ PBKDF2 (mantener para hashes existentes — no se requiere migración)
- ✅ Aumentar iteraciones para nuevos hashes al mínimo actual de OWASP
- 💡 Actualizar transparentemente el conteo de iteraciones en el próximo login
- 💡 Considerar migrar a Argon2id para proyectos nuevos sin requisito FIPS
Aceptable: Derivar múltiples claves de una contraseña
PBKDF2 puede derivar claves de longitud arbitraria, lo que lo hace útil cuando se necesitan múltiples claves de una contraseña maestra (p. ej., una para cifrado, otra para autenticación MAC). Use sales diferentes o sufijos de índice para derivar claves independientes. Establezca la longitud de clave en 64 bytes y divida la salida en dos claves de 32 bytes, o ejecute PBKDF2 dos veces con sales diferentes. Este patrón se usa en algunas arquitecturas de gestores de contraseñas y esquemas de cifrado multicapa.
- ✅ Usar sales diferentes por propósito de clave derivada
- ✅ Usar HKDF para expansión de clave después de la derivación PBKDF2 inicial
- ❌ Nunca reutilizar la misma sal para diferentes propósitos de clave
- 💡 Combinar con AES-256-GCM para cifrado autenticado
No recomendado: Reemplazar Argon2 en proyectos nuevos
Si está comenzando un proyecto nuevo sin requisitos FIPS, PBKDF2 es la opción más débil comparada con Argon2id. PBKDF2 no es resistente a memoria, lo que significa que las GPU pueden paralelizar ataques económicamente. Incluso con 600.000 iteraciones, una GPU de alta gama puede intentar miles de adivinanzas PBKDF2 por segundo. Argon2id con parámetros predeterminados (47MB de memoria, 1 iteración) logra tiempo de ejecución comparable mientras que la resistencia a memoria previene completamente la paralelización con GPU.
- ❌ Evitar PBKDF2 para nuevos proyectos cuando Argon2id esté disponible
- ✅ Argon2id (resistente a memoria, preferencia OWASP)
- ✅ scrypt (resistente a memoria, ampliamente disponible)
- 💡 PBKDF2 solo se prefiere cuando el cumplimiento FIPS es obligatorio
No recomendado: Hash de datos general
PBKDF2 es una función de derivación de claves, no una función hash de propósito general. Es intencionalmente lenta y nunca debe usarse para hacer hash de contenidos de archivos, sumas de verificación, autenticación de mensajes o deduplicación. Para integridad de datos, use SHA-256 o SHA-512. Para autenticación de mensajes, use HMAC-SHA256. Usar la salida de PBKDF2 como hash general desperdiciaría ciclos de CPU significativos sin ningún beneficio de seguridad.
- ❌ No usar PBKDF2 para sumas de verificación de archivos o integridad de datos
- ❌ No usar PBKDF2 para autenticación de mensajes (usar HMAC-SHA256)
- ✅ SHA-256 / SHA-512 para hash de datos general
- ✅ HMAC-SHA256 para integridad de mensajes autenticada
Resumen de mejores prácticas
- Use PBKDF2-HMAC-SHA256 (≥600.000 iteraciones) o HMAC-SHA512 (≥210.000) para entornos con cumplimiento FIPS. Almacene la cadena hash completa incluyendo iteraciones, algoritmo y sal.
- Para proyectos nuevos sin requisitos FIPS, prefiera Argon2id — es resistente a memoria y significativamente más resistente a ataques GPU con rendimiento comparable.
- Use siempre una sal aleatoria única por contraseña (generada automáticamente por esta herramienta). Nunca reutilice sales ni las codifique en el código de la aplicación.
- Aumente los conteos de iteraciones con el tiempo conforme mejore el hardware. El conteo de iteraciones se almacena en la cadena hash, por lo que los valores antiguos y nuevos pueden coexistir.
- Use PBKDF2 solo en el login o configuración de claves — nunca en cada solicitud. Emita tokens (JWT, sesión) después de la autenticación para operaciones de alta frecuencia.