Hashes/Cripto

Scrypt Hash + Verify

Hashea contraseñas con scrypt (RFC 7914, KDF memory-hard) con verificación contra un hash existente.


                    

Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.

How to use it

Common uses

Things to keep in mind

The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.

Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.

Artículo sobre esta herramienta: Scrypt: por qué el algoritmo necesita tanta memoria

Preguntas frecuentes

¿En qué se diferencia scrypt de bcrypt o PBKDF2?

Scrypt es deliberadamente exigente en memoria además de en CPU, lo que lo hace mucho más costoso de crackear con GPU o hardware ASIC personalizado en comparación con bcrypt o PBKDF2, que principalmente resisten la fuerza bruta basada en CPU.

¿Qué controlan los parámetros N, r y p?

N fija el costo de CPU/memoria (debe ser potencia de dos), r fija el tamaño de bloque que afecta el uso de memoria por operación, y p fija la paralelización — aumentar cualquiera eleva el costo de recursos tanto para el uso legítimo como para los ataques.

¿Sigue siendo scrypt una buena opción frente a Argon2?

Scrypt sigue siendo sólido y probado en batalla, pero Argon2 (ganador de la Password Hashing Competition) suele recomendarse para sistemas nuevos, ya que ofrece un control más fino sobre memoria y resistencia a ataques de canal lateral.

¿Cuánta memoria consume realmente scrypt?

Aproximadamente 128 × N × r bytes por cada cálculo. Con parámetros típicos (N=16384, r=8) son unos 16 megabytes por hash — insignificante para un solo inicio de sesión, pero relevante con miles de autenticaciones simultáneas en un servidor.

¿Dónde más se usa scrypt, además de para hashear contraseñas?

Scrypt es conocido como algoritmo de proof-of-work en algunas criptomonedas (por ejemplo, Litecoin) — se eligió precisamente por su resistencia a la minería con dispositivos ASIC especializados, algo característico de bitcoin con su SHA-256.

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.

Argon2: por qué este algoritmo ganó el concurso de hasheo de contraseñas

Cómo Argon2 defiende mejor contra ataques con GPU que los algoritmos de hasheo de contraseñas más antiguos.

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.