In cryptography, a salt
consists of random bits that are used as one of the inputs to a one-way function. The other input is usually a password or passphrase. The output of the one-way function can be stored rather than the password, and still be used to authenticate users. The one-way function typically uses a cryptographic hash function. A salt can also be combined with a password by a key derivation function such as PBKDF2 to generate a key for use with a cipher or other cryptographic algorithm.
In a typical usage for password authentication, the salt is stored along with the output of the one-way function, sometimes along with the number of iterations to be used in generating the output (for key stretching).
Early Unix systems used a 12-bit salt, but modern implementations use larger lengths from 48 to 128 bits.
Salt is closely related to the concept of nonce.
The benefit provided by using a salted password is that a simple dictionary attack against the stored values becomes impractical if the salt is large enough. That is, an attacker would not be able to create a precomputed lookup table (a rainbow table) of hashed values (password + salt), because it would take too much space.
Salt (cryptography) - Wikipedia, the free encyclopedia