Ejemplos
bcrypt hash con salt embebido: $2b$12$K1eZ.../9yDXm...PBKDF2 con salt: pbkdf2_sha256$260000$saltbase64$hashbase64Argon2 con salt: $argon2id$v=19$m=65536,t=3,p=4$salt$hashGeneración Node.js: crypto.randomBytes(32).toString('hex')DB storage: user_id | password_hash | salt_used
Preguntas frecuentes
¿Puedo usar el mismo salt para todos mis usuarios?
No. Eso se llama 'pepper' (pimienta) y sirve para otro propósito. El salt DEBE ser único por usuario, sino un atacante puede precalcular rainbow tables para tu salt compartido.
¿Dónde guardo el salt de forma segura?
En la misma columna que el hash. Herramientas como bcrypt lo incrustan automáticamente. Si usás PBKDF2 manual, podés almacenarlo en una columna separada en texto plano. No necesita encriptarse.
¿El salt protege contra ataques de fuerza bruta?
Indirectamente. El salt previene ataques paralelos masivos con tablas precalculadas, obligando al atacante a crackear cada hash individualmente. Pero necesitás bcrypt/Argon2 (lentos) para que cada intento tarde suficiente.