scrypt Generador de Hash
Herramienta gratuita de scrypt Generador de Hash en línea. Procesamiento 100% local — tus datos nunca salen de tu dispositivo.
El resultado se mostrará aquí...
Entrada → Calcular Hash
Usage Guide
Acerca de scrypt
scrypt (RFC 7914) es una función de derivación de claves basada en contraseña con uso intensivo de memoria, diseñada para ser costosa tanto en tiempo de CPU como en memoria RAM. Fue creada para resistir los ataques de fuerza bruta por GPU, FPGA y ASIC que amenazan a PBKDF2 y bcrypt. scrypt se utiliza en la prueba de trabajo de Litecoin, gestores de contraseñas y derivación segura de claves. Tres parámetros de costo permiten ajustar el equilibrio entre seguridad y rendimiento.
Pasos de uso
scrypt es una función de derivación de claves unidireccional — no puede invertirse:
Formato de salida
scrypt genera el string de parámetros completo necesario para verificaciones futuras:
Elegir parámetros de scrypt
Seleccione los parámetros según sus requisitos de seguridad y la latencia aceptable:
FAQ
Q: ¿Qué hace a scrypt resistente a los ataques de hardware?
A: scrypt es intensivo en memoria: su algoritmo interno ROMix requiere acceder a un gran bloque de memoria (128 × N × r bytes) en orden pseudoaleatorio. Este patrón de acceso secuencial a la memoria no puede paralelizarse como SHA-256 — rellenar N=16384, r=8 requiere ~16 MB de acceso aleatorio, lo que hace que los ataques en hardware GPU/ASIC sean órdenes de magnitud más caros en comparación con hashes puramente computacionales como SHA-256 o PBKDF2.
Q: ¿Cómo se compara scrypt con bcrypt y Argon2?
A: Los tres son algoritmos de hashing de contraseñas, pero difieren en diseño: bcrypt (1999) solo es costoso en tiempo (4 KB de memoria fija), volviéndose cada vez más vulnerable a ataques GPU. scrypt (2009) es intensivo en memoria, resistente a GPU/ASIC, pero tiene una interacción compleja de parámetros (un N grande también aumenta el coste de CPU vía p). Argon2id (2015, ganador del PHC) es intensivo en memoria, resistente a GPU y tiene parámetros independientes de tiempo/memoria/paralelismo. OWASP y NIST recomiendan Argon2id para nuevos sistemas; scrypt es una sólida segunda opción.
Q: ¿Por qué N debe ser potencia de 2?
A: El algoritmo ROMix de scrypt usa N internamente como el tamaño de una tabla de búsqueda y se basa en enmascaramiento de bits (index & (N-1)) para un acceso aleatorio eficiente. Este truco de máscara solo funciona correctamente cuando N es potencia de 2. Valores comunes: 16384 (2¹⁴) para uso interactivo, 1048576 (2²⁰) para cifrado de archivos.
Q: ¿Puedo usar la salida de scrypt directamente como clave criptográfica?
A: Sí — scrypt está diseñado específicamente para producir material de clave. La salida de 32 bytes (256 bits) es adecuada como clave AES-256 o clave ChaCha20-Poly1305. Sin embargo, nunca use la misma derivación scrypt para múltiples propósitos (p. ej. autenticación Y cifrado) — derive claves separadas con diferentes salts o use una KDF como HKDF para expandir una clave raíz.
Q: ¿Cuál es el formato de entrada para la verificación?
A: Para verificar una contraseña contra un hash scrypt almacenado, coloque la contraseña y el string de salida scrypt completo separados por una barra vertical: contraseña|16384:8:1:salt_base64:key_hex. La herramienta vuelve a derivar la clave usando los parámetros almacenados y la compara con la clave guardada. Si coinciden, devuelve '✓ Contraseña verificada'.
Q: ¿Es scrypt apropiado para almacenar contraseñas en una base de datos?
A: Sí, con los parámetros adecuados. Almacene el string completo (n:r:p:salt:key) por usuario — contiene todo lo necesario para verificaciones futuras. Use como mínimo N=16384, r=8, p=1 para inicios de sesión interactivos; aumente N para aplicaciones más críticas. Consulte la Hoja de referencia de almacenamiento de contraseñas de OWASP para las recomendaciones actuales.
Use Cases
Recomendado: Almacenamiento de contraseñas
scrypt es una excelente elección para hashear contraseñas antes de almacenarlas en una base de datos. Su intensidad de memoria hace que los ataques de fuerza bruta fuera de línea sean órdenes de magnitud más costosos que con PBKDF2 o bcrypt. Use N≥16384 para aplicaciones web, valores más altos para sistemas más sensibles.
- ✅ scrypt con N=16384, r=8, p=1 para inicios de sesión web interactivos
- ✅ Almacenar el string completo n:r:p:salt:key — nunca solo la clave
- ✅ Usar un salt aleatorio único por usuario (generado automáticamente por esta herramienta)
- ❌ No usar scrypt con N<1024 — factor de trabajo insuficiente
- 💡 Considerar Argon2id para nuevos proyectos — es la recomendación actual de OWASP
Recomendado: Derivación de claves para cifrado de disco
scrypt es muy adecuado para derivar claves de cifrado a partir de frases de contraseña para cifrado de disco o de archivos. Los parámetros más altos (N=1048576) son apropiados porque la derivación ocurre una sola vez al montar y los segundos adicionales de retraso son aceptables. La clave derivada puede usarse directamente con AES-256-GCM.
- ✅ scrypt con N=1048576 (2²⁰) para derivación de claves de cifrado de disco/archivos
- ✅ Usar la salida de 32 bytes directamente como clave AES-256-GCM
- ✅ Almacenar los parámetros scrypt y el salt junto con los datos cifrados
- ❌ No usar la misma clave derivada para autenticación y cifrado
Recomendado: Aplicaciones de criptomonedas
scrypt fue adoptado como algoritmo de Proof-of-Work para Litecoin (y otras criptomonedas). En aplicaciones de monederos, scrypt se usa para derivar claves privadas de mnemonics o frases de contraseña. Su intensidad de memoria fue elegida específicamente para resistir las ventajas de la minería ASIC.
- ✅ scrypt para derivación de claves de monedero a partir de frases de contraseña
- ✅ scrypt para almacenamiento de claves protegidas por frase de contraseña
- ❌ Para aplicaciones de minería PoW, usar parámetros específicos de la implementación
No recomendado: Contextos no autenticados
scrypt deriva una clave — no proporciona autenticación ni integridad por sí mismo. Si necesita un código de autenticación de mensajes, use HMAC-SHA256. Si necesita una suma de comprobación de datos rápida, use SHA-256. El coste computacional de scrypt lo hace inadecuado para operaciones de alto volumen.
- ❌ scrypt para hashing de propósito general (usar SHA-256 en su lugar)
- ❌ scrypt para HMAC o autenticación de mensajes
- ❌ scrypt para operaciones de alta frecuencia (firma de solicitudes API, tokens por solicitud)
- ✅ scrypt solo donde sus propiedades de protección de contraseñas sean explícitamente necesarias
Resumen de mejores prácticas
- scrypt es una KDF intensiva en memoria — adecuada para hashing de contraseñas y derivación de claves a partir de frases de contraseña.
- Almacene siempre el string de parámetros completo (n:r:p:salt:key) — nunca solo la clave.
- N debe ser potencia de 2; el valor predeterminado N=16384, r=8, p=1 es apropiado para inicios de sesión interactivos.
- Para nuevas aplicaciones, OWASP recomienda Argon2id como primera opción; scrypt es la sólida segunda opción.
- scrypt NO es apropiado para hashing general, MACs u operaciones de alta frecuencia — use SHA-256 o HMAC para esos casos.