En angriber er "tilladt" at kende saltet - din sikkerhed skal være designet på en måde, så den selv med kendskab til saltet stadig er sikker.
Hvad gør saltet?
Salt hjælper med at forsvare sig mod brute-force-angreb ved hjælp af forudberegnet "regnbue-tabeller".
Salt gør brute-force meget dyrere (i tid/hukommelse) for angriberen.
Beregning af en sådan tabel er dyrt og gøres normalt kun, når det kan bruges til mere end ét angreb/adgangskode.
HVIS du bruger det samme salt til alle adgangskoder, kan en angriber forudberegne en sådan tabel og derefter brute-force dine adgangskoder til klartekst ...
Så længe du genererer et nyt (bedst kryptografisk stærkt) tilfældigt salt for hver adgangskode, du vil gemme hashen til, er der ikke noget problem.
HVIS du vil styrke sikkerheden yderligere
Du kan beregne hashen flere gange (hash hashen osv.) - det koster dig ikke meget, men det gør et brute-force-angreb / beregning af "regnbue-tabeller" endnu dyrere... tak ikke opfinde dig selv - der er gennemprøvede standardmetoder til at gøre det, se for eksempel http://en. wikipedia.org/wiki/PBKDF2
og http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard
BEMÆRK:
At bruge en sådan mekanisme er i disse dage obligatorisk siden "CPU-tid" (anvendelig til angreb som regnbueborde/brute force osv.) bliver mere og mere udbredt (se f.eks. det faktum, at Amazons Cloud-tjeneste er blandt top 50 over hurtigste supercomputere på verdensplan og kan bruges af alle for et forholdsvis lille beløb)!