NEW
Adding random, unique data to inputs before hashing to resist precomputed attacks and improve credential storage security.
DESCRIPTION
Salting appends a random value to data, commonly passwords, prior to hashing, ensuring unique outputs even for identical inputs. It defeats rainbow tables and reduces attack feasibility. Salts should be unique per credential and stored alongside hashes. Salting is often combined with key derivation (PBKDF2, Argon2, scrypt) for stronger resistance. Peppering adds a secret server-side value for additional protection.
ALTERNATIVE DEFINITIONS
OWASP
Salting passwords is a method to protect against rainbow table attacks by adding a unique, random string to each password before hashing.
Emphasizes unique per-password salts and rainbow table mitigation.
Wikipedia
A salt is random data that is used as an additional input to a one-way function that hashes data, a password or passphrase.
Concise general definition emphasizing randomness and hashing.
RELATED TERMS
Password Hashing Rainbow Table Password-Based Key Derivation Function 2 Argon2 scrypt HMAC Credential Storage Entropy
COMPETING TERMS
Peppering Key Derivation Function
KNOWLEDGE AREAS
Data Security Data Privacy & Compliance
TARGET AUDIENCE
Security Architect Cybersecurity Engineer Software Developer Chief Information Security Officer Data Privacy Officer
EXTERNAL SOURCES
- Wikipedia - Salt (cryptography)
- OWASP - Best practices on salting
- IETF - PBKDF2 specification
- IETF - Argon2 specification
TOP QUESTIONS
Why is salting essential for password storage?
It prevents attackers from using precomputed rainbow tables and ensures identical passwords produce different hashes.
Category: Relevancy
How should salts be generated and stored?
Use cryptographically secure randomness, unique per credential, and store salts with the hash.
Category: BestPractice
Is salting alone sufficient?
No; use key derivation functions (PBKDF2, Argon2, scrypt) to slow brute-force attacks.
Category: Requirements
What is peppering and how does it differ from salting?
Peppering uses a secret server-side value; unlike salts, peppers aren’t stored with hashes.
Category: Comparison
Can salts be reused?
Avoid reuse; unique per credential salts maximize protection and collision resistance.
Category: Mistakes
Are salts required to be secret?
No; they can be stored openly with hashes. Secrecy is not a requirement.
Category: Misunderstanding
What length should salts be?
At least 128 bits is recommended to minimize collision and ensure uniqueness.
Category: Guidance
How do KDF parameters affect security?
Higher iteration counts and memory hardness increase attacker costs; tune for environment.
Category: Performance
Where to learn more about salting best practices?
See OWASP cheat sheets and IETF KDF standards like RFC 8018 and RFC 9106.
Category: Learning