Argon2 Generador de Hash
Herramienta gratuita de Argon2 Generador de Hash en línea. Procesamiento 100% local — tus datos nunca salen de tu dispositivo.
Verify: input format is "password|hash"
El resultado se mostrará aquí...
Entrada → Calcular Hash
Usage Guide
Acerca de Argon2
Argon2 es el ganador del Password Hashing Competition 2015, diseñado por la Universidad de Luxemburgo. Es actualmente el algoritmo de hash de contraseñas más seguro, recomendado por organizaciones autoritativas como OWASP y NIST para el almacenamiento de contraseñas. Argon2 tiene tres variantes: Argon2d (resistente a GPU), Argon2i (resistente a canales laterales) y Argon2id (modo híbrido, recomendado). A diferencia de los algoritmos hash tradicionales, Argon2 tiene costos computacionales y consumo de memoria ajustables, resistiendo eficazmente ataques de fuerza bruta, GPU y ASIC.
Pasos de uso
Argon2 admite dos operaciones: hash de contraseñas y verificación:
Características del algoritmo
Argon2 está diseñado específicamente para el almacenamiento de contraseñas con las siguientes ventajas únicas:
Comparación de tres variantes
Argon2 tiene tres variantes adecuadas para diferentes escenarios:
FAQ
Q: ¿Cuál es la diferencia entre Argon2 y bcrypt/PBKDF2?
A: Argon2: Algoritmo moderno (2015), intensivo en memoria, resistente a GPU/ASIC, preferido por OWASP. bcrypt: Algoritmo clásico (1999), intensivo en cómputo, resistencia moderada a GPU, ampliamente usado pero gradualmente siendo reemplazado por Argon2. PBKDF2: Algoritmo estándar (2000), intensivo en cómputo, vulnerable a ataques de GPU, requiere iteraciones extremadamente altas (≥ 600k) para seguridad. Comparación de rendimiento: Al mismo nivel de seguridad, Argon2 es 2-3x más rápido que bcrypt y 10x+ más rápido que PBKDF2. Recomendación: Usar Argon2id para nuevos proyectos, migrar gradualmente proyectos existentes a Argon2.
Q: ¿Cómo deben configurarse los parámetros de Argon2?
A: Configuración recomendada por OWASP: Costo de memoria (m): 47104 KB (aproximadamente 47MB), puede aumentarse a 64MB o más si el rendimiento del servidor es bueno. Costo de tiempo (t): 1-3 iteraciones, generalmente 1 es suficiente. Paralelismo (p): 1 (un solo hilo), evitar ataques paralelos. Longitud del hash: 32 bytes (256 bits). Método de ajuste: Probar en entorno de desarrollo, asegurar que un solo hash tome 0,5-1 segundos, luego ajustar según el rendimiento del servidor. Nota: Parámetros más altos significan más seguridad, pero aumentan la carga del servidor y el tiempo de respuesta.
Q: ¿Por qué Argon2 es más adecuado para el almacenamiento de contraseñas que SHA-256?
A: SHA-256 es una función hash de propósito general diseñada para cómputo rápido, lo cual es una debilidad fatal en escenarios de almacenamiento de contraseñas. Las GPU pueden calcular miles de millones de hashes SHA-256 por segundo, haciendo que incluso las contraseñas con sal sean vulnerables a ataques de fuerza bruta. Ventajas de Argon2: 1) Diseño lento: Un solo hash toma 0,5-1 segundos, reduciendo dramáticamente la velocidad de fuerza bruta. 2) Intensivo en memoria: Requiere gran memoria (64MB), las GPU y ASIC no pueden paralelizar ataques. 3) Costo ajustable: A medida que mejora el hardware, los parámetros pueden aumentarse para mantener la seguridad. Conclusión: El almacenamiento de contraseñas debe usar algoritmos especializados de hash de contraseñas (Argon2, bcrypt, PBKDF2), no funciones hash de propósito general (SHA-256, MD5).
Q: ¿Cuál es el formato de cadena hash de Argon2?
A: Argon2 usa el formato de cadena PHC (Password Hashing Competition): $argon2id$v=19$m=65536,t=3,p=1$saltbase64$hashbase64.
Significados de los componentes: $argon2id: Variante del algoritmo (id/i/d). v=19: Versión del algoritmo (actualmente 19). m=65536,t=3,p=1: Costo de memoria (KB), costo de tiempo (iteraciones), paralelismo. saltbase64: Sal codificada en Base64 (16 bytes). hashbase64: Hash codificado en Base64 (32 bytes).
Ventaja: Autocontenido con todos los parámetros, no se necesita almacenamiento adicional para verificación, facilita futuras actualizaciones.
Q: ¿Cómo migrar de bcrypt a Argon2?
A: Enfoque de migración progresiva: 1) Verificación dual: Mantener la lógica de verificación de bcrypt, usar Argon2 para nuevos usuarios y cambios de contraseña. 2) Actualización transparente: Cuando los usuarios inician sesión, verificar primero con bcrypt, luego inmediatamente rehashear con Argon2 y actualizar la base de datos al tener éxito. 3) Campo identificador: Agregar campo de base de datos para identificar el tipo de algoritmo hash (bcrypt/argon2). 4) Migración completa: Después de algún tiempo (p.ej., 6 meses), la mayoría de los usuarios activos han migrado, se puede forzar a los usuarios restantes a restablecer contraseñas. Nota: bcrypt y Argon2 tienen diferentes formatos de hash, pueden identificarse automáticamente por prefijo ($2a$ vs $argon2id$).
Q: ¿No será Argon2 demasiado lento en los navegadores?
A: El objetivo de diseño de Argon2 es cómputo lento, lo cual es una garantía de seguridad, no un defecto. Usando WebAssembly para calcular Argon2 en navegadores, un solo hash toma 0,5-1 segundos, lo que tiene un impacto mínimo en la experiencia del usuario (los usuarios esperando 1 segundo después de ingresar la contraseña es aceptable). Sugerencias de optimización: 1) Cómputo asíncrono: Usar Web Workers para calcular en segundo plano, evitar bloquear la UI. 2) Indicador de progreso: Mostrar mensaje “Cifrando...” para mejorar la experiencia del usuario. 3) Ajuste de parámetros: El entorno del navegador puede reducir moderadamente el costo de memoria (p.ej., 32MB), pero no bajar de la recomendación mínima de OWASP (47MB). Nota: La verificación del lado del servidor también requiere el mismo tiempo de cómputo, que es el mecanismo de seguridad central de Argon2.
Use Cases
Recomendado: Almacenamiento de contraseñas de usuario
Este es el caso de uso principal de Argon2. Cuando los usuarios se registran o cambian contraseñas, usar Argon2id para hashear contraseñas y almacenar en la base de datos. Durante el inicio de sesión, extraer la cadena hash almacenada, hashear la contraseña ingresada por el usuario con los mismos parámetros, luego comparar resultados. Las características intensivas en memoria de Argon2 hacen que los ataques de fuerza bruta sean extremadamente costosos, protegiendo las contraseñas de usuario incluso si la base de datos es comprometida.
Recomendado: Hash de claves API
Las claves API (como API Tokens, Access Keys) típicamente necesitan almacenarse en la base de datos pero no deben almacenarse en texto plano. Usar Argon2 para hashear claves API; incluso si la base de datos es comprometida, los atacantes no pueden obtener las claves originales. Para verificación, hashear la clave proporcionada por el usuario y comparar. Nota: Las claves API son generalmente cadenas de alta entropía generadas aleatoriamente, pueden reducir moderadamente los parámetros de Argon2 (p.ej., t=1, m=32MB) para mejorar el rendimiento.
Recomendado: Carteras de criptomonedas
Las carteras de criptomonedas necesitan contraseñas para proteger las claves privadas. Usar Argon2d (dependiente de datos) para derivar la clave de cifrado de la contraseña del usuario, luego usar esa clave para cifrar la clave privada. La resistencia a GPU de Argon2d hace que la fuerza bruta de contraseñas de cartera sea extremadamente costosa. Nota: Los escenarios de cartera típicamente usan Argon2d en lugar de Argon2id porque el riesgo de ataque de canal lateral es menor, mientras que la resistencia a GPU es más importante.
- ✅ Argon2d (resistente a GPU, recomendado para carteras)
- ✅ Argon2id (seguridad más completa)
- scrypt (elección clásica, usado por Bitcoin Core)
- 💡 Combinar con carteras de hardware para mayor seguridad
Recomendado: Derivación de clave de cifrado de archivos
Usar Argon2 para derivar la clave de cifrado de archivos de la contraseña del usuario. Después de que el usuario proporciona la contraseña, Argon2 genera una clave de longitud fija (p.ej., 256 bits), luego usar esa clave para cifrar el archivo (p.ej., usando AES-256-GCM). La sal y los parámetros de Argon2 se almacenan en el encabezado del archivo; durante el descifrado, se extraen los parámetros y se vuelve a derivar la clave. Este enfoque se usa ampliamente en archivos cifrados (como 7-Zip, WinRAR) y cifrado de disco (como VeraCrypt).
- ✅ Argon2id (recomendado)
- ✅ Argon2i (resistente a canales laterales)
- scrypt (elección clásica)
- 💡 Almacenar sal y parámetros en el encabezado del archivo
Recomendado: Códigos de respaldo de autenticación de dos factores
Los códigos de respaldo de autenticación de dos factores (2FA) necesitan hashearse antes del almacenamiento para prevenir el abuso si la base de datos es comprometida. Dado que los códigos de respaldo son cadenas de alta entropía generadas aleatoriamente (típicamente 8-16 caracteres), se pueden usar parámetros de Argon2 más bajos (p.ej., t=1, m=32MB) para mejorar el rendimiento. Durante la verificación, hashear el código de respaldo ingresado por el usuario y comparar; invalidar inmediatamente el código de respaldo tras la verificación exitosa.
No recomendado: Escenarios sensibles al rendimiento en tiempo real
Las características lentas de Argon2 lo hacen inadecuado para escenarios que requieren rendimiento extremadamente alto, como autenticación de API de alta frecuencia, inicio de sesión en juegos en tiempo real, autenticación de dispositivos IoT, etc. Estos escenarios deben usar autenticación basada en tokens (como JWT, OAuth) o gestión de sesiones, en lugar de hash de contraseñas para cada solicitud. Argon2 solo se usa una vez durante el inicio de sesión del usuario; después de la verificación exitosa, se emite un token, las solicitudes posteriores usan autenticación de token.
- ✅ JWT + HMAC-SHA256 (alto rendimiento)
- ✅ Session + Cookie (enfoque tradicional)
- ✅ OAuth 2.0 (protocolo estándar)
- ❌ No usar Argon2 en escenarios de alta frecuencia
Recomendaciones de mejores prácticas
- Argon2id es la mejor opción para el almacenamiento de contraseñas, recomendado para todos los nuevos proyectos. Los proyectos existentes deben migrar gradualmente de bcrypt/PBKDF2 a Argon2.
- La configuración de parámetros sigue las recomendaciones de OWASP: m ≥ 47MB, t ≥ 1, p = 1. Si el rendimiento del servidor es bueno, se puede aumentar el costo de memoria a 64MB o más.
- No usar Argon2 en escenarios de alta frecuencia; debe combinarse con autenticación de token (JWT, Session) para alto rendimiento.
- Al migrar desde bcrypt, usar enfoque progresivo: mantener verificación bcrypt, usar Argon2 para nuevos usuarios y cambios de contraseña, actualizar transparentemente durante el inicio de sesión.
- El entorno del navegador usa WebAssembly para calcular Argon2, combinar con Web Workers e indicadores de progreso para mejorar la experiencia del usuario.