

While slow, a brute-force attack (trying all possible password combinations) guarantees that an attacker will crack the password eventually.

Taking a list of words and adding a few permutations - like substituting $ for s - enables a password cracker to learn a lot of passwords very quickly.

Instead, authentication systems store a password hash, which is the result of sending the password - and a random value called a salt - through a hash function. This would make it far too easy for a hacker or a malicious insider to gain access to all of the user accounts on the system. A well-designed password-based authentication system doesn’t store a user’s actual password.
