Slide 23 of 28
Part 4 · PreventionSlide 23
Slide 23 · Mitigation 5
MIT 05
Store passwords so that a database breach is useless.

Hash passwords with a slow, purpose-built algorithm:

Argon2id — the current gold standard. Winner of the Password Hashing Competition. Memory-hard, resistant to GPU cracking.

bcrypt — widely supported, proven over 25 years. Still good for most applications.

scrypt — memory-hard alternative to bcrypt.

Always use a unique random salt per password (done automatically by the algorithms above). Set the cost factor high enough that hashing takes 100–500ms on your server hardware.

MD5 — cracks in milliseconds on modern GPUs. Entire MD5 databases pre-computed.

SHA-1 / SHA-256 — fast hashing algorithms designed for speed, not password storage. A GPU can compute billions per second.

Plain text — any breach immediately exposes every password. Enables credential stuffing everywhere those users have accounts.

Credential stuffing only works because other sites stored passwords poorly. If your site is breached, proper hashing means the attacker gets a list of useless hashes — not a credential stuffing list for the next victim.

💼 Business takeaway

Ask your team how the password reset flow works. Emailed reset links that don’t expire and “security question” flows are high-risk patterns that attackers specifically target.

← Back MIT 06: Re-auth for sensitive operations →