Verificación de hash Argon2 | Compara una contraseña con un hash codificado
Introduce una contraseña y un hash Argon2 codificado ($argon2id$...) para comprobar si coinciden. Se calcula en el navegador; nada se envía al servidor.
Verificar un hash Argon2
Argon2 ganó la Password Hashing Competition en 2015 y es hoy **el hash de contraseñas más recomendado para trabajos nuevos.** Su diferencia principal con bcrypt es que permite ajustar **el uso de memoria además del tiempo de cálculo.** Las GPU y el hardware específico destacan en aritmética paralela pero tienen dificultades para asignar a cada núcleo una porción grande de memoria, de modo que exigir memoria eleva considerablemente el coste de un ataque por fuerza bruta.
Un hash Argon2 adopta la forma `$argon2id$v=19$m=19456,t=2,p=1$sal$resumen`, con **los parámetros y la sal incrustados en la propia cadena.** La verificación no necesita, por tanto, ninguna lista aparte de parámetros: bastan el hash y la contraseña. Esta herramienta realiza esa verificación. **Todo se calcula en su navegador, y ni la contraseña ni el hash que introduzca se envían jamás a un servidor.**
Cómo verificar
- Pegue el hash Argon2 Introduzca tal cual la cadena codificada que comienza por `$argon2id$`.
- Introduzca la contraseña Escriba la contraseña en texto claro que desea contrastar.
- Ejecute la verificación **Como el algoritmo está diseñado para consumir mucha memoria, esto puede tardar unos segundos.** Es el comportamiento previsto.
- Lea el resultado Se le indica si ambos coinciden.
Consejos para aprovecharla mejor
- Para verificar, pega directamente el hash codificado (una cadena que empieza por $argon2id$) generado con la herramienta Cálculo de hash Argon2.
- El hash codificado ya incluye la variante, el coste de memoria, el número de iteraciones y la sal, por lo que no es necesario especificar estos parámetros por separado al verificar.
- Si el formato del hash no es válido (por ejemplo, por caracteres faltantes o saltos de línea al copiarlo), aparecerá un mensaje de error. Comprueba que has copiado el texto completo correctamente.
- Si el resultado indica que no coinciden, comprueba que la contraseña no contenga mayúsculas o minúsculas incorrectas ni espacios en blanco añadidos por error al principio o al final.
Situaciones en las que resulta útil
Comprobar una implementación de autenticación
Confirme con un par conocido de hash y contraseña que su propio código de acceso verifica correctamente.
Confirmar una migración
Establezca de antemano si los hashes traídos de otro sistema pueden verificarse tal como están.
Inspeccionar los parámetros elegidos
Lea los valores `m`, `t` y `p` incrustados en la cadena para ver qué coste se configuró.
Cerrar el círculo con el generador
Confirme que un valor producido por el generador de hashes Argon2 se verifica correctamente aquí.
Términos de Argon2 explicados
- Argon2id
- La variante que combina resistencia a los ataques de canal lateral con resistencia a los ataques por GPU. **Es la elección estándar en trabajos nuevos.**
- m (coste de memoria)
- La cantidad de memoria empleada, expresada en kibibytes. **Es el parámetro central que hace a Argon2 resistente a los ataques por GPU.**
- t (coste de tiempo)
- El número de iteraciones. Elevarlo alarga el cálculo y con él el coste para el atacante.
- p (paralelismo)
- El número de carriles procesados en paralelo, ajustado al número de núcleos del servidor.
- Sal
- Datos aleatorios distintos para cada hash. **La misma contraseña da un hash diferente cada vez, lo que anula los ataques con tablas arcoíris.**
- Hash codificado
- El formato que empaqueta nombre del algoritmo, parámetros, sal y resumen en una sola cadena. Lleva todo lo que la verificación necesita.
Preguntas frecuentes
A propósito — Por qué basta con "comparar hashes" para verificar una contraseña
A primera vista, verificar una contraseña parece consistir en "comparar directamente la contraseña guardada con la que se ha introducido", pero en realidad el mecanismo es completamente distinto. El servidor (o, como en esta herramienta, el propio navegador) vuelve a aplicar el hash a la contraseña introducida usando el mismo algoritmo y la misma sal que se usaron al guardarla, y solo comprueba si el resultado coincide con el hash almacenado. La contraseña original nunca es objeto de comparación en sí misma: basta con determinar si dos hashes coinciden, y esa es precisamente la ventaja de este método.
Este mecanismo funciona porque funciones de hash como Argon2 son "deterministas": con la misma entrada, la misma sal y los mismos parámetros, siempre se obtiene la misma salida. La cadena del hash codificado (con el formato $argon2id$v=19$m=...$sal$hash) incorpora tanto la sal como todos los parámetros usados en el cálculo original, de modo que no es necesario especificarlos de nuevo al verificar: el propio hash codificado permite repetir el cálculo por completo.
Gracias a estas dos propiedades —la "unidireccionalidad" (no se puede deducir la contraseña original a partir del hash) y el "determinismo" (la misma entrada siempre produce la misma salida)— los proveedores de servicios pueden verificar el inicio de sesión de forma segura sin almacenar nunca la contraseña en texto plano. Aunque la base de datos sea filtrada, un atacante solo obtendría los valores de hash, y con un algoritmo computacionalmente costoso como Argon2, un ataque de fuerza bruta para recuperar la contraseña original tardaría un tiempo extremadamente largo.