Inicio › Herramientas para desarrolladores › Generador de hash Argon2

Generador de hash Argon2

Crea hashes de contraseña Argon2id, Argon2i o Argon2d con la memoria, las iteraciones, el paralelismo y la sal que elijas, o comprueba una contraseña con un hash $argon2 existente. Todo se ejecuta en tu dispositivo; la contraseña nunca sale de la página.

Última actualización:

Cargando el motor Argon2…

Variante
64 MiB
pasadas por la memoria
carriles / hilos
Etiqueta de 256 bits
Clave secreta (pepper), opcional

El secreto se mezcla en el hash pero no se guarda en él. Necesitas el mismo secreto para verificar. La mayoría de las bibliotecas de contraseñas no usan ninguno.

Publicidad
Publicidad

Cómo usar Generador de hash Argon2

  1. Escribe la contraseña que quieres convertir en hash en la pestaña Generar.
  2. Elige una variante y un ajuste predefinido: Argon2id con los ajustes de OWASP o RFC 9106 sirve para la mayoría de los inicios de sesión; cambia a Personalizado para definir tú la memoria, las iteraciones y el paralelismo.
  3. Conserva la sal aleatoria o introduce la tuya como texto, hex o Base64 (al menos 8 bytes).
  4. Pulsa Generar hash y copia la cadena codificada en tu base de datos, o el hex sin procesar si necesitas una clave derivada.
  5. Para comprobar una contraseña, abre la pestaña Verificar, pega un hash $argon2, escribe la contraseña y pulsa Verificar contraseña.

Cómo funciona Argon2

Argon2 (RFC 9106) convierte una contraseña y una sal en una etiqueta de longitud fija en tres pasos:

  1. Hash inicial: la contraseña, la sal, el secreto y los datos asociados opcionales, y todos los parámetros (p, longitud de la etiqueta, m, t, versión, tipo) se procesan con BLAKE2b para obtener una semilla H0 de 64 bytes.
  2. Llenado de memoria: la memoria se divide en p carriles de bloques de 1 KiB. Cada bloque nuevo se calcula a partir del bloque anterior y de un bloque previo elegido de forma pseudoaleatoria con una función de compresión basada en BLAKE2b. Esto se repite durante t pasadas, así que los m KiB completos deben mantenerse en RAM.
  3. Finalización: el último bloque de cada carril se combina con XOR y se convierte en hash con la longitud de etiqueta solicitada.

Como cada pasada toca todos los bloques, un atacante que intente ahorrar memoria debe recalcular bloques una y otra vez. Esa compensación es lo que hace que Argon2 sea costoso en GPU y hardware a medida.

Comparación de Argon2id, Argon2i y Argon2d

VarianteAcceso a memoriaFortalezaÚsalo para
Argon2idIndependiente de los datos en la primera mitad de la pasada 1, dependiente de los datos despuésResiste tanto ataques de canal lateral como de compensación con GPUHash de contraseñas (la opción por defecto)
Argon2iSiempre independiente de los datosLa mejor resistencia a canal lateral; necesita más pasadas frente a ataques de compensaciónDerivación de claves cuando importan las fugas de tiempo
Argon2dSiempre dependiente de los datosLa más fuerte contra el descifrado con GPU, pero filtra información de tiempoPrueba de trabajo de criptomonedas y sistemas de back-end sin exposición a canales laterales

Parámetros recomendados

FuenteMemoria (m)Iteraciones (t)Paralelismo (p)
OWASP Password Storage Cheat Sheet (mínimo)19 MiB (19,456 KiB)21
Alternativa de OWASP46 MiB (47,104 KiB)11
Primera recomendación del RFC 91062 GiB14
Segunda recomendación del RFC 910664 MiB (65,536 KiB)34

Usa una sal aleatoria de 16 bytes y una etiqueta de 32 bytes. La memoria es el parámetro que más perjudica a los atacantes, así que súbela primero y luego añade iteraciones hasta que un hash tarde entre 0.1 y 0.5 segundos aproximadamente en tu servidor. Los tiempos del navegador que muestra esta herramienta son solo orientativos: los servidores con bibliotecas nativas suelen ser más rápidos.

Cómo leer un hash Argon2 codificado

Ejemplo: $argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPc es la contraseña password con la sal somesalt. Pulsa Cargar ejemplo en la pestaña Verificar para comprobarlo.

ParteEjemploSignificado
Variante$argon2idargon2id, argon2i o argon2d
Versión$v=1919 = 0x13 = Argon2 1.3 (si falta, es la antigua 1.0)
Parámetros$m=65536,t=2,p=1Memoria en KiB, iteraciones, carriles
Sal$c29tZXNhbHQBase64 sin relleno
Hash$CTFhFdXPJO1a…La etiqueta, en Base64 sin relleno

Preguntas frecuentes

¿Qué es Argon2?

Argon2 es la función de hash de contraseñas que ganó la Password Hashing Competition en 2015 y está estandarizada en el RFC 9106. Es lenta a propósito y exigente en memoria: cada hash debe llenar una cantidad configurable de RAM, lo que encarece los ataques de adivinación a gran escala con GPU y ASIC.

¿Qué variante de Argon2 debo usar?

Usa Argon2id. Ejecuta la primera mitad de la primera pasada con acceso a memoria independiente de los datos (como Argon2i, resistente a ataques de canal lateral) y el resto con acceso dependiente de los datos (como Argon2d, resistente a ataques de compensación con GPU). Tanto el RFC 9106 como OWASP recomiendan Argon2id para contraseñas.

¿Qué parámetros se recomiendan?

La Password Storage Cheat Sheet de OWASP sugiere Argon2id con al menos 19 MiB de memoria, 2 iteraciones y paralelismo 1 (o compensaciones equivalentes como 46 MiB con 1 iteración). El RFC 9106 recomienda 2 GiB, 1 iteración y 4 carriles si la memoria lo permite, o 64 MiB, 3 iteraciones y 4 carriles en caso contrario. Ajústalo para que un hash tarde una fracción de segundo en tu servidor.

¿Por qué la misma contraseña da un hash distinto cada vez?

Se genera una sal aleatoria nueva para cada hash y se guarda dentro de la cadena codificada. Así, contraseñas idénticas producen hashes distintos y se neutralizan las tablas precalculadas. La verificación vuelve a leer la sal y los parámetros del hash guardado.

¿Qué significa el hash codificado $argon2id$v=19$m=65536,t=3,p=4$…?

Es el formato de cadena PHC: la variante, la versión (19 = Argon2 1.3), la memoria en KiB (m), las iteraciones (t), el paralelismo (p) y luego la sal y el hash, ambos en Base64 sin relleno. Bibliotecas como password_hash de PHP, argon2-cffi, argon2 de Node y libsodium leen y escriben este formato.

¿Es seguro escribir aquí una contraseña real?

El hash se calcula por completo en tu navegador. La contraseña y el hash nunca se suben ni se guardan. Para secretos de producción, sigue siendo buena práctica calcular el hash en el servidor que los va a verificar.

¿Se puede descifrar un hash Argon2?

No. Argon2 es una función unidireccional. La única forma de recuperar una contraseña es probar candidatas y calcular el hash de cada una con la sal y los parámetros guardados, algo que Argon2 hace lento y exigente en memoria por diseño.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Codificadores, hashes y criptografía →