La propiedad only de salt es unique - realmente única, es decir, cada contraseña con hash tiene su propio valor (eso no es un salt por servidor, sino uno sal por usuario, y una nueva cuando el usuario cambia su contraseña). La sal no es secreta.
El rol de la sal es impedir el costo compartido entre varias instancias de ataque; p.ej. cuando el atacante tiene varias contraseñas con hash para descifrar y desea optimizar las cosas. La sal no ayuda en absoluto para la resistencia de una sola contraseña; lo que asegura es que atacar 1000 contraseñas con hash cuesta 1000 veces atacar una. En particular, las sales evitan el uso de tablas precomputadas, p. Ej. tablas de arco iris (las tablas precomputadas son un tipo de costo compartido).
Si usa una sal con algunas otras propiedades (por ejemplo, una "sal secreta"), entonces no es una sal.
Para una introducción sobre el hashing de contraseñas, lea esto .