Ask any well-built app to email you your current password. It can't. Here's why.

It doesn't store your password. It stores a hash: a one-way scramble it can check against but never turn back into the original.

The rule is blunt. OWASP: "Passwords should never be stored in plain text. Instead, they must be protected using strong, slow hashing algorithms such as Argon2id, bcrypt, or PBKDF2."

What's in the database

What's stored

Plain text (wrong)
hunter2
Hashed + salted (right)
a1f9…3c (a one-way hash)

Can it be read back?

Plain text (wrong)
Yes, instantly
Hashed + salted (right)
No, hashing only runs forwards

If the database leaks

Plain text (wrong)
Every password exposed
Hashed + salted (right)
Attackers must crack each one, slowly

So how does login work if the password is gone? The app hashes what you type and compares it to the stored hash. The same input always gives the same hash, so a match means the password was right, without the app ever keeping it.

The salt stops shortcuts. OWASP: "A salt is a unique, randomly generated string that is added to each password as part of the hashing process." Because each user's salt differs, two people with the same password get different hashes, and precomputed "rainbow table" lookups don't work.

And slowness is the point. OWASP notes "fast hashing algorithms such as SHA‑256 are not suitable for password storage" because they let an attacker guess billions of times quickly; argon2 and bcrypt are deliberately slow.

Try it with the rules off. In the sandbox, change one character of a password and watch the whole hash change beyond recognition. Then try to run the hash backwards to the password. You can't; nor can anyone else.

Check yourself

0/4 got it

Saved on this device only. No account, no streaks.

Next in who are you: Sessions and tokens.