Begrip: Salt
Een salt is een willekeurige string die uniek is voor elk wachtwoord in de database. Door deze string te concateneren met het wachtwoord voordat dit gehasht wordt, wordt er voor twee gebruikers die hetzelfde wachtwoord gekozen hebben een andere hash bewaard in de database.
Naast deze obfuscatie heeft salt nog een ander bijzonder groot voordeel. Omdat elk wachtwoord gehasht is met een andere salt, wordt het onmogelijk om een rainbow table op te stellen. Dit is een tabel waar de hashes van veel voorkomende wachtwoorden teruggevonden kunnen worden, zo kunnen kwaadwilligen zeer snel inloggen op verschillende accounts als ze toegang gekregen hebben tot User tabel.
Omdat de salt uniek is per gebruiker, mag deze in de database bewaard worden. Zelfs als een hacker hier toegang tot krijgt, is dit niet erg, want er zijn zodanig veel mogelijke wachtwoorden dat het computationeel onmogelijk is om het wachtwoord te raden. Om het wachtwoord te bepalen zou de hacker alle mogelijke wachtwoorden moeten hashen met de salt van de gebruiker en dit voor elke gebruiker opnieuw doen.