Generador de Argon2
Genera un hash de contraseña Argon2id con una sal aleatoria de 16 bytes y los valores de memoria, iteraciones, paralelismo y longitud del hash que elijas. La memoria está limitada a 64 MiB y las iteraciones a 4; los valores predeterminados siguen la base de referencia de OWASP: 19 MiB y 2 pasadas. La herramienta devuelve la cadena PHC estándar que empieza por $argon2id$v=19$, que verifican PHP, libsodium y las bibliotecas argon2. La contraseña nunca se muestra.
Preguntas frecuentes
¿Qué es Argon2id?
Argon2 ganó la competición Password Hashing Competition en 2015 y está especificado en RFC 9106. Argon2id es la variante híbrida que resiste tanto los ataques de canal lateral como los ataques con GPU. Es la variante que recomiendan OWASP y el RFC para almacenar contraseñas.
¿Qué significan los ajustes de memoria, iteraciones y paralelismo?
La memoria establece cuántos MiB ocupa cada hash; las iteraciones, cuántas pasadas se realizan sobre esa memoria; y el paralelismo, el número de carriles. Cuanta más memoria e iteraciones se usen, más costosa será cada tentativa para los atacantes. Aquí, la memoria va de 1 a 64 MiB, las iteraciones de 1 a 4 y el paralelismo de 1 a 4.
¿Qué ajustes debería usar?
Los valores predeterminados son 19 MiB, 2 iteraciones y 1 carril, el mínimo de OWASP para Argon2id. El valor predeterminado de PHP es 64 MiB con 4 iteraciones, que también puedes reproducir aquí. En producción, usa tanta memoria por inicio de sesión como tus servidores puedan dedicar.
¿Por qué están limitadas la memoria y las iteraciones?
Cada hash reserva realmente la memoria solicitada y ejecuta cada pasada en un servidor compartido. El límite de 64 MiB y 4 iteraciones mantiene cada solicitud por debajo de un segundo, y aun así cubre ajustes habituales en producción.
¿Qué contiene la cadena de salida?
Un resultado como $argon2id$v=19$m=19456,t=2,p=1$ seguido de la sal y el hash enumera la variante, la versión, la memoria en KiB, las iteraciones y los carriles. La sal y el hash están en Base64 sin relleno. Guarda la cadena completa, porque la verificación lee de ella todos los parámetros.
¿Por qué el hash es distinto cada vez?
Cada solicitud usa una nueva sal aleatoria de 16 bytes, por lo que la misma contraseña produce una cadena distinta cada vez. Todas se verifican correctamente con la contraseña adecuada.
¿Puedo elegir la longitud del hash?
Sí, entre 16 y 64 bytes; el valor predeterminado es 32 bytes. Las etiquetas más largas no dificultan los intentos, así que 32 bytes bastan para almacenar contraseñas.
¿Qué sistemas aceptan estos hashes?
PHP password_verify, crypto_pwhash_str_verify de libsodium, el paquete argon2 para Node.js, argon2-cffi para Python y Spring Security leen el formato de cadena PHC. El Verificador de Argon2 de este sitio también las comprueba.
¿Se guarda o se devuelve mi contraseña?
No. La contraseña solo se usa en memoria para calcular el hash y se elimina de la respuesta. Nunca se registra ni se guarda.
¿Puedo generar hashes Argon2i o Argon2d?
No. La herramienta solo produce Argon2id, porque es la variante recomendada para contraseñas. El Verificador de Argon2 sí acepta hashes Argon2i y Argon2d.