Hashes/Cripto

Argon2 Hash + Verify

Hashea contraseñas con Argon2 (ganador de la Password Hashing Competition, RFC 9106) — variantes d/i/id, con verificación contra un hash existente.


                    

Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.

How to use it

Common uses

Things to keep in mind

The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.

Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.

Artículo sobre esta herramienta: Argon2: por qué este algoritmo ganó el concurso de hasheo de contraseñas

Preguntas frecuentes

¿Por qué se recomienda Argon2 frente a hashes antiguos como MD5 o SHA-256 para contraseñas?

Argon2 es deliberadamente lento y exige mucha memoria, lo que hace mucho más costoso el fuerza bruta y el crackeo con GPU/ASIC, a diferencia de hashes rápidos de propósito general como MD5 o SHA-256, inadecuados para almacenar contraseñas.

¿Qué controlan los parámetros de memoria, iteraciones y paralelismo?

El coste de memoria fija cuánta RAM requiere cada intento de hash, las iteraciones controlan cuántas pasadas se ejecutan, y el paralelismo fija el número de hilos — aumentar cualquiera eleva el coste de crackear a costa de un hash más lento.

¿Qué variante de Argon2 debería usar: d, i o id?

Argon2id es la recomendación por defecto para hashear contraseñas, ya que combina la resistencia de Argon2i a ataques de canal lateral con la resistencia de Argon2d al crackeo por GPU.

¿De dónde viene Argon2 como estándar?

Argon2 ganó la Password Hashing Competition de 2015 — un concurso abierto de criptógrafos cuyo objetivo era encontrar el mejor algoritmo para hashear contraseñas. Desde entonces, OWASP lo recomienda como elección prioritaria sobre bcrypt.

¿El parámetro de paralelismo solo acelera el hasheo?

No, ese mismo parámetro también acelera el fuerza bruta para un atacante con hardware multinúcleo, por lo que el paralelismo conviene ajustarlo según el número real de núcleos del servidor, sin aumentarlo sin necesidad.

Artículos: Hashes/Cripto

Hash Generator: en qué se diferencian MD5, SHA-1 y SHA-256

Por qué MD5 todavía se usa para verificar la integridad de archivos, pero no para contraseñas.

Checksum Verifier: cómo comprobar que un archivo no está dañado

Por qué una suma de comprobación coincidente confirma la integridad de un archivo, pero no quién lo creó.

HMAC: en qué se diferencia un hash con clave de un hash normal

Por qué un SHA-256 normal no protege contra la manipulación de un mensaje, pero HMAC sí.

Bcrypt: por qué las contraseñas se hashean lento y no rápido

Por qué un SHA-256 rápido es una mala elección para contraseñas, y un bcrypt lento es la correcta.

UUID: cómo se generan identificadores que casi nunca se repiten

Por qué se puede generar un UUID v4 de forma independiente en millones de máquinas sin riesgo de colisión.

Generador de contraseñas: qué es lo que realmente la hace fuerte

Por qué una contraseña larga hecha de palabras del diccionario es más fuerte que una corta con símbolos y números.

AES: cómo funciona el cifrado simétrico

Por qué la misma clave cifra y descifra los datos en AES, y en qué se diferencia del cifrado asimétrico.

Scrypt: por qué el algoritmo necesita tanta memoria

Por qué scrypt exige deliberadamente mucha memoria para dificultar el ataque en dispositivos ASIC.

TOTP: cómo funcionan los códigos de un solo uso en las apps de autenticación

Por qué el código de Google Authenticator funciona sin internet y se sincroniza con el servidor solo por la hora.

PBKDF2: el estándar de estiramiento de claves más antiguo

Por qué el número de iteraciones recomendado para PBKDF2 crece cada año.

X.509: qué hay dentro de un certificado SSL

Qué comprueba exactamente el navegador en el certificado de un sitio antes de mostrar el candado verde.

PGP: cómo funciona el cifrado con clave pública y privada

Por qué se puede compartir libremente una clave pública PGP, pero nunca la privada.