# Generador de Scrypt

Derive una clave scrypt a partir de una contraseña con una sal aleatoria o personalizada. Elija el exponente de coste hasta 15 (N hasta 32768), el tamaño de bloque r hasta 8, el paralelismo p hasta 4 y una longitud de clave de 16 a 64 bytes. La herramienta sigue RFC 7914 y devuelve la clave, la sal utilizada y los parámetros en hexadecimal o Base64, listos para compararlos con Node.js crypto.scrypt, Python hashlib o libsodium. La contraseña no se repite.

## Preguntas frecuentes

### ¿Qué es scrypt?

Scrypt es una función de derivación de claves que requiere mucha memoria, creada por Colin Percival y estandarizada en RFC 7914. Deriva una clave a partir de una contraseña y una sal, y obliga a que cada intento use un bloque grande de memoria. Se usa para almacenar contraseñas, cifrar discos y algunas criptomonedas.

### ¿Qué significan N, r y p?

N es el coste de CPU y memoria y debe ser una potencia de dos; r es el tamaño del bloque y p es el factor de paralelización. El uso de memoria es de aproximadamente 128 veces N por r bytes, por lo que N = 16384 con r = 8 requiere 16 MiB. Aquí, N llega hasta 32768, r hasta 8 y p hasta 4.

### ¿Cuáles son los parámetros predeterminados?

Los valores predeterminados son N = 16384 (exponente de coste 14), r = 8, p = 1 y una clave de 32 bytes: los parámetros interactivos recomendados en el artículo sobre scrypt. Aumente N para obtener una protección mayor, hasta donde lo permita su sistema.

### ¿Cómo se elige la sal?

Si el campo de sal está vacío, la herramienta genera 16 bytes aleatorios y los muestra en el resultado. Si introduce una sal, se usan sus bytes UTF-8, lo que permite reproducir una clave de otro sistema. Nunca reutilice una misma sal para distintas contraseñas.

### ¿Puedo reproducir los vectores de prueba de RFC 7914?

Sí. La contraseña pleaseletmein con la sal SodiumChloride, exponente de coste 14, r = 8, p = 1 y una clave de 64 bytes produce 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, el tercer vector de RFC.

### ¿Por qué están limitados los parámetros?

Scrypt asigna memoria real y se ejecuta en un servidor compartido. Limitar N a 32768, r a 8 y p a 4 mantiene cada derivación por debajo de unos 32 MiB de memoria y de uno o dos segundos de trabajo.

### ¿Cómo almaceno un hash de contraseña scrypt?

Guarde juntos la clave, la sal y N, r y p, porque necesitará todos esos valores para comprobar una contraseña más adelante. Bibliotecas como Node.js crypto.scrypt dejan el formato de almacenamiento a su criterio, mientras que otras usan sus propios formatos de cadena.

### ¿Se incluye mi contraseña en el resultado?

No. La respuesta contiene la clave, la sal y los parámetros, pero nunca la contraseña. No se registra ni se almacena nada.

### ¿Debería usar scrypt o Argon2?

Ambos requieren mucha memoria y son adecuados para contraseñas. Argon2id es la recomendación más reciente y es más fácil de ajustar, mientras que scrypt cuenta con amplia compatibilidad en bibliotecas estándar como Node.js y Python.

### ¿Qué cambian las opciones hex y Base64?

Cambian cómo se escriben la clave y la sal en el resultado. Los bytes son los mismos, así que elija el formato que lea su código.

¿Su anuncio aquí?

[Envíenos un correo](mailto:hi@dennn.is?subject=Publicidad%20en%20OneClick%20Pro)

[Anuncio El conjunto de plugins listo para agentes de WordPress.](https://sleekwp.com/?ref=oneclickpro)
