Per la verità vengono usati tipicamente MD5, blowfish, eksblowfish, SHA256 o SHA512,
a seconda di un flag memorizzato nel primo carattere dell'hash, poi viene memorizzato
il salt, ed infine il "vero" hash del salt+password.
Li vedi usando passwd con le opzioni -tipohash e -salt quellochevuoi.
In sostanza nel file passwd (o shadow, se usi linux) salta fuori una stringa composta da
$tipohash$salt$hashvero
Lo scopo è quello di rendere la vita difficile ai cracker, dovendo lavorare su tutte le password (cioè le righe del file) partendo in ogni caso da zero.
Se non ci fosse il sale => si userebbero rainbowtable.
Con un sale uguale per tutti=>con tabelle di parole, alla prima decifrazione si troverebbe il sale => e si tornerebbe al punto 1
Considera che una macchina *nix può avere anche centinaia di utente, non solo i 2 o 3 di un normale computer desktop