Hashes/Cripto
PBKDF2 Hash + Verify
Deriva una clave con PBKDF2 (RFC 8018) a partir de una contraseña, HMAC-SHA1/256/384/512, con un número de iteraciones configurable.
PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.
How to use it
- Derive: enter a password, pick an HMAC algorithm (SHA-1/256/384/512), and set the iteration count to get a derived key of the requested length.
- Verify: paste a password and an existing PBKDF2 hash to check whether they match, without recomputing it manually.
- More iterations means slower, more secure computation — tune the value to your server's response-time budget.
Common uses
- Deriving an encryption key from a user's password for a file container or a custom protocol.
- Checking a PBKDF2 implementation for compatibility across programming languages (the parameters must match exactly).
- Hashing passwords in systems that require a FIPS-compliant algorithm (PBKDF2 is NIST-approved).
Things to keep in mind
Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.
The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.
Artículo sobre esta herramienta: PBKDF2: el estándar de estiramiento de claves más antiguo
Preguntas frecuentes
¿En qué se diferencia PBKDF2 de bcrypt o Argon2 para el hash de contraseñas?
PBKDF2 aplica repetidamente una función hash HMAC para ralentizar la fuerza bruta, pero, a diferencia de bcrypt o Argon2, no exige memoria, por lo que resulta comparativamente más barato de crackear con GPU. Sigue siendo ampliamente usado y aprobado por FIPS, pero Argon2 suele preferirse para sistemas nuevos.
¿Qué controla el número de iteraciones y qué tan alto debería ser?
El número de iteraciones fija cuántas veces se aplica el hash subyacente, intercambiando directamente velocidad por resistencia a la fuerza bruta. Las recomendaciones actuales sugieren cientos de miles de iteraciones para SHA-256, ajustándose al alza con el tiempo a medida que el hardware mejora.
¿Por qué PBKDF2 necesita una sal?
Una sal garantiza que contraseñas idénticas produzcan resultados distintos, impidiendo que los atacantes usen tablas rainbow precalculadas y obligándolos a atacar cada hash individualmente.
¿Importa qué función hash base usa PBKDF2?
Sí. Las implementaciones antiguas solían usar HMAC-SHA1 por defecto — dentro de la construcción HMAC esto no es una vulnerabilidad crítica, pero las recomendaciones actuales aconsejan claramente HMAC-SHA256 o algo más fuerte, por un mayor margen de seguridad sin pérdida apreciable de velocidad.
¿Dónde más se usa PBKDF2, aparte de para almacenar contraseñas?
PBKDF2 se usa ampliamente para derivar claves criptográficas de cifrado a partir de contraseñas — por ejemplo, en WPA2/WPA3 para Wi-Fi y en muchos formatos de contenedores de archivos cifrados.