Hash with a slow function; add a second factor.
Authentication: Passwords and MFA: hash with a slow function
design for the day something breaks
MFA increases friction — adopt risk-based prompts.
Authenticate users with strong password hashing (slow KDF), and add a second factor wherever risk warrants. Weak recovery flows undo strong front-door auth.
Argon2id is the modern default. Bcrypt remains acceptable.
TOTP is broadly supported; WebAuthn (passkeys) is phishing-resistant and growing fast.
Recovery: device backup codes, secondary email; avoid security questions.
Add MFA to existing app.