Posso vedere da dove vieni, ma la risposta è fondamentalmente "non è quello che è il sale". Se sto cercando di scoprire la password di un utente particolare , il sale non aiuta molto se è proprio accanto all'hash. Tuttavia, non è atteso essere utile in quella situazione: è già abbastanza difficile decifrare la password di un singolo utente.
Il punto del sale è che è qualcosa da aggiungere a ciascuna password prima dell'hashing in modo che ogni password sia unica - se due utenti hanno entrambi hunter2
come password, gli hash devono essere diversi.
Supponiamo che un utente malintenzionato stia esplorando un database (o un'intera gamma di database) per trovare tutti coloro la cui password è letmein123
. Senza sale, possono fare l'hash una volta e cercare l'hash.
Senza sale se un attaccante individua due o più hash identici nel database, indica che si tratta di una password debole (dal momento che più utenti hanno scelto lo stesso) e può concentrarsi sul cracking per primo.
Ma salt è un prefisso / suffisso specifico dell'utente che viene aggiunto alla password prima dell'hashing, quindi (anche con un "pubblico" salt) un utente malintenzionato deve ricalcolare l'hash per ogni utente, quindi controlla una password contro 10000 utenti non è più efficiente di controllare 10000 password contro un utente, che è il punto.