Cálculo de Hash Argon2 | Compatible con Argon2id, Argon2i y Argon2d

Calcula el hash Argon2 de una contraseña u otro texto. Compatible con los tres métodos Argon2id, Argon2i y Argon2d, con perfiles de coste de memoria e iteraciones recomendados por OWASP. Todo el cálculo se realiza en el navegador; los datos introducidos nunca se envían al servidor.

Qué hace esta calculadora de resumen Argon2

Escriba una contraseña o cualquier otra cadena y esta herramienta genera su resumen con una de las tres variantes de Argon2: Argon2id, Argon2i o Argon2d. Argon2 ganó la Password Hashing Competition y resiste no solo la fuerza bruta simple, sino también los ataques rápidos montados con hardware específico como GPU y ASIC, motivo por el cual se considera la primera opción para almacenar contraseñas en sistemas de nueva creación.

La solidez del resumen descansa en tres parámetros: coste de memoria, iteraciones y paralelismo. Aumentarlos eleva el coste para el atacante, pero también el tiempo y la memoria que consume un inicio de sesión legítimo. Esta herramienta ofrece como preajustes las cinco combinaciones recomendadas en la OWASP Password Storage Cheat Sheet; pruebe primero una de ellas y después ajústela a la capacidad del servidor en que vaya a operar realmente.

Cómo calcular un resumen

  1. Introduzca la contraseña o la cadena Escriba en el campo de contraseña el texto que quiera resumir. Lo que introduzca no se transmite a ninguna parte.
  2. Elija la variante Salvo que tenga un motivo concreto para otra cosa, escoja Argon2id, que combina la resistencia a ataques con GPU con la resistencia a ataques de canal lateral.
  3. Aplique un preajuste de OWASP Al pulsar un botón de preajuste, el coste de memoria, las iteraciones y el paralelismo se fijan en una de las combinaciones que OWASP recomienda.
  4. Ajuste los parámetros si lo necesita El coste de memoria en KiB, las iteraciones y el paralelismo pueden editarse por separado. Cuanto mayores sean los valores, más tardará el cálculo.
  5. Pulse calcular y consulte el resultado Se muestra el resumen codificado en formato PHC junto con el tiempo que realmente ha llevado el cálculo. El botón de copiar guarda el resultado.

Consejos para aprovecharla mejor

  • Argon2 fue el algoritmo ganador de la Password Hashing Competition de 2015, y Argon2id es actualmente la variante recomendada por OWASP. Si no tienes un motivo especial, elige Argon2id.
  • Los botones de perfil corresponden a las cinco combinaciones de coste de memoria e iteraciones que recomienda la OWASP Password Storage Cheat Sheet. Cuanta más memoria se exige, mayor es la resistencia frente a ataques paralelos con GPU.
  • Aumentar el "grado de paralelismo (p)" apenas afecta al tiempo de cálculo en esta implementación WebAssembly del navegador, ya que en la práctica no se ejecuta en paralelo. La aceleración por paralelismo solo es efectiva en servidores con varios núcleos.
  • El salt se genera automáticamente en cada cálculo, por lo que el hash codificado resultante es distinto cada vez, incluso con el mismo texto y los mismos parámetros.
  • Si el coste de memoria es demasiado alto, la pestaña del navegador puede quedar temporalmente sin responder. Es recomendable empezar probando con unas pocas decenas de MB.

Cuándo resulta útil

Decidir cómo guardar las contraseñas de un servicio nuevo

Al diseñar el almacenamiento de contraseñas de un sistema nuevo, puede ver en el acto la longitud real del resumen y el tiempo de cálculo de cada juego de parámetros.

Guardar claves de API y tokens con seguridad

Más allá de las contraseñas de acceso, sirve cuando quiere evitar que cadenas confidenciales, como claves de API o secretos compartidos, queden en texto plano en la base de datos.

Preparar resúmenes ficticios para desarrollo y pruebas

Genere aquí los resúmenes de las cuentas de prueba que vaya a insertar directamente en una base de datos, sin arrancar la aplicación.

Comprender la relación entre parámetros y tiempo

Calcule varias veces con valores distintos y compare los tiempos indicados; esa comparación es lo que le dice qué ajustes convienen a su servidor de producción.

Valorar una migración desde bcrypt

Resumir la misma cadena con la calculadora de resumen bcrypt y comparar el formato de salida y el tiempo empleado le da una base para decidir la migración.

Términos relacionados con Argon2

Argon2id
Variante híbrida que combina las propiedades de Argon2d y Argon2i. Aporta a la vez resistencia a los ataques con GPU y a los de canal lateral, y OWASP la señala como primera recomendación.
Argon2i
Variante cuyo orden de acceso a memoria no depende de la entrada, lo que la hace fuerte frente a los ataques de canal lateral —los que extraen información del tiempo de ejecución o del consumo eléctrico—, aunque algo más débil que Argon2d ante las GPU.
Argon2d
Variante cuyo orden de acceso a memoria sí depende de la entrada. Ofrece la mayor resistencia a los ataques paralelos con GPU o ASIC, pero es débil frente a los de canal lateral.
Coste de memoria
Parámetro que fija cuánta memoria emplea el cálculo del resumen, expresado en KiB. Valores mayores encarecen los ataques paralelos con hardware específico.
Iteraciones
Llamado también coste de tiempo, es el parámetro que fija cuántas veces se repite el procesamiento interno. Valores mayores alargan el cálculo y refuerzan la resistencia a la fuerza bruta.
Paralelismo
Parámetro que fija cuántas vías se ejecutan en paralelo. Ayuda en un servidor de varios núcleos, pero no surte efecto en la implementación en WebAssembly que corre en el navegador.
Sal
Valor aleatorio añadido antes de calcular el resumen. Esta herramienta lo genera en cada cálculo, de modo que la misma cadena con los mismos parámetros produce un resumen distinto cada vez.
Formato PHC
Codificación establecida por la Password Hashing Competition, que reúne en una sola cadena el nombre del algoritmo, la versión, los parámetros, la sal y el propio resumen, con una forma como $argon2id$v=19$m=…

Preguntas frecuentes

Para un sistema de nueva creación, Argon2id es la primera opción recomendada; de hecho, OWASP lo señala actualmente como su recomendación principal. Sin embargo, si un sistema existente ya usa BCrypt, ten en cuenta que migrar requiere recalcular los hashes (por ejemplo, volviendo a aplicarlos en el siguiente inicio de sesión).

Argon2d ofrece la mayor resistencia frente a ataques con GPU, pero es más vulnerable a ataques de canal lateral, mientras que Argon2i presenta la característica contraria. Argon2id combina ambos diseños en un enfoque híbrido, y se recomienda elegir esta variante salvo que exista un motivo concreto para no hacerlo.

Los botones de perfil de esta herramienta corresponden a los cinco patrones recomendados por la OWASP Password Storage Cheat Sheet. Si vas a usarlo en un servidor real, ajusta los valores teniendo en cuenta la memoria disponible, buscando que cada cálculo de hash tarde entre 100 y 500 ms aproximadamente.

Sí. Al usar el algoritmo Argon2 estándar, el hash resultante puede verificarse directamente con password_verify() de PHP o con las bibliotecas de verificación de Argon2 de otros lenguajes. Aun así, ten cuidado con el manejo de los datos introducidos.

No. El cálculo del hash se realiza íntegramente mediante WebAssembly en el navegador, y el contenido introducido nunca se envía al exterior.
Tool-kun

A propósito — el origen de Argon2 y la competición de hashing de contraseñas

Argon2 fue elegido el mejor algoritmo entre 24 propuestas en la Password Hashing Competition (PHC), celebrada entre 2013 y 2015. Su diseño busca superar la debilidad de métodos anteriores como BCrypt (1999) y PBKDF2 (2000), que resultan vulnerables a ataques de fuerza bruta acelerados por hardware especializado como GPUs o ASICs, exigiendo para ello un uso intensivo de memoria durante el cálculo.

Argon2 tiene tres variantes. Argon2d maximiza la resistencia frente a ataques con GPU, pero es vulnerable a ataques de canal lateral; Argon2i resiste mejor los ataques de canal lateral, aunque su resistencia a GPU es algo menor. Argon2id combina ambas propiedades en un enfoque híbrido, por lo que OWASP y otras organizaciones de seguridad lo recomiendan como primera opción para el almacenamiento de contraseñas.

Desde PHP 7.2, basta con indicar la constante PASSWORD_ARGON2ID en la función password_hash() para generar un hash Argon2id. Node.js, Python, Ruby y otros lenguajes principales también cuentan con bibliotecas oficiales o semioficiales, y cada vez es más frecuente que Argon2id se convierta en la primera opción frente a BCrypt al diseñar el almacenamiento de contraseñas de un sistema nuevo.