Salts make each password hash unique, even when users choose the same password. That destroys the attacker’s ability to precompute one table and reuse it across targets. Without shared structure, the economics collapse and the attacker must attack each hash separately, which is far less efficient than a precomputed lookup approach.
Why salts break the economics of precomputed lookup attacks
A rainbow table works only when many hashes share the same structure. A salt adds unique per-password input before hashing, so the same password no longer produces the same stored hash across accounts or systems. That forces an attacker to build and use a separate precomputation path for each salt value, which removes the main speed advantage of the attack.
What changes technically when a salt is added
The core effect is not that the hash becomes stronger in the abstract, but that it becomes non-reusable. Without salts, a precomputed table can map common passwords to hashes at scale. With salts, the attacker must recompute the search space for each distinct salt, because the salt changes the hash output even when the password is identical.
This is why salts are most effective against attacks that depend on reuse and amortisation. A rainbow table is built to trade storage and computation up front for fast recovery later. Salting destroys that shared work product, so the attacker loses the ability to apply one lookup table across many victims.
Well-designed password hashing still depends on more than salting alone. Salts stop precomputation and cross-account reuse, while slow password hashing makes each online or offline guess cost more. Together they raise the cost of large-scale cracking far more than either measure does by itself.
Why salts change attacker economics
Salts force the attacker into a one-target-at-a-time model. Instead of investing once and attacking many hashes cheaply, the attacker has to repeat the expensive work for every unique salt. That shifts the economics away from bulk exploitation and toward much slower per-hash cracking, which is usually impractical at scale.
For that reason, salts are a structural defence against table-based attacks, not just a minor hardening step. They do not make guessing impossible, but they remove the central efficiency gain that made rainbow tables attractive in the first place.
Risk and Threat Considerations
Unsalted hashes create shared structure that makes precomputed cracking realistic, especially when password reuse is common and the attacker can work offline. Once one table can be reused across many targets, the cost per recovered password drops sharply, and compromise scales in a way defenders often underestimate.
Failure mechanism: The defender stores hashes that are predictable enough for the attacker to precompute against a fixed input space, then reuse the results across many accounts or systems. Salting breaks that shared input space, so the same password no longer maps to a reusable table entry.
Impact: Offline cracking becomes much more expensive and far less scalable, reducing the practical value of stolen password databases and making bulk compromise harder to achieve.
Practitioner Guidance
What to verify: Confirm that passwords are hashed with a unique, random salt per credential and that the salt is stored alongside the hash. If identical passwords can still produce identical stored hashes, the scheme is not giving you the protection salts are meant to provide.
What good looks like: The password storage design prevents table reuse, uses a modern slow hash, and does not rely on salts alone for resistance to offline attack. Salting should be treated as a baseline requirement, not a complete password defence.
Practitioner takeaway: Salts matter because they remove reuse from the attacker’s workflow, and that is what makes large-scale precomputation unattractive rather than merely less convenient.
Related resources from NHI Mgmt Group
- How should security teams prevent rainbow table attacks on password hashes?
- What do security teams get wrong about multi-factor authentication and rainbow table attacks?
- Why do legitimate admin tools make identity attacks harder to detect?
- Why do non-human identities make supply chain attacks harder to contain?