NIST revised its password guidance in SP 800-63B (2017) and again in 2024. Most "best practices" from corporate IT training are now officially outdated.
Mandatory complexity rules don't help much
Requiring uppercase + number + symbol produces passwords like P@ssw0rd1! β which cracks instantly because attackers know the pattern. NIST 800-63B (2017) explicitly recommends against mandatory complexity rules. Length matters more. A 16-character lowercase random string has more entropy than an 8-character "complex" one.
Mandatory rotation creates weaker passwords
Forced 90-day rotation leads to predictable patterns: Summer2024! becomes Fall2024!. Users who have to change passwords frequently choose passwords that are easy to increment. NIST now recommends against periodic rotation unless there's evidence of compromise.
Length is the strongest single factor
Going from 12 to 20 characters adds more security than adding symbols to a short password. A 20-character random lowercase string has ~94 bits of entropy. An 8-character password with every character class has about 52 bits. Use a password manager; let it generate 20+ character passwords for everything.
Passphrases are genuinely strong and memorable
Four random words from the EFF word list give you 51 bits of entropy and a string you can actually type. Six words gives 77 bits β stronger than most corporate password policies require, and actually writable on a sticky note if needed (which NIST no longer prohibits either).
Check passwords against breach databases
The HaveIBeenPwned API (and the k-anonymity model it uses) lets you check if a password has appeared in known data breaches without sending the full password to a third party. NIST explicitly recommends checking new passwords against breach corpuses. Don't accept a known-breached password even if it meets complexity rules.
Different sites need different passwords
Password reuse is the leading cause of account takeovers. Credential stuffing attacks automate trying breached username/password pairs across hundreds of sites. A password manager generating unique passwords per site eliminates this attack entirely. Even a weak unique password is better than a strong reused one.