All Tools View Categories Blog About Contact Privacy

How to Generate Strong Passwords: A Security Best Practices Guide

How to Generate Strong Passwords: A Security Best Practices Guide

Weak passwords remain the leading cause of account takeovers. Verizon's Data Breach Investigations Report finds 81% of breaches involve stolen or weak passwords, and Have I Been Pwned now tracks over 12 billion breached accounts. The fix is not a clever trick — it's generating passwords that are long, random, and unique for every site.

This in-depth guide explains how to generate strong passwords correctly, how NIST, CISA, and OWASP recommend handling them in 2024-2026, and how to put best practices into action — from choosing length and entropy to using a password manager and enabling two-factor authentication.

TL;DR — Quick Answer: Generate a strong password that is 16-20 characters, random, and unique — using upper and lower case, numbers, and symbols — or a 4-6 word random passphrase. Create them with a password generator using a CSPRNG, store in a password manager, and protect important accounts with 2FA or passkeys. Never reuse passwords, and check new ones against breach lists before use.
How to generate strong passwords - weak vs strong password strength examples

What Makes a Password Strong?

A strong password is one that is computationally infeasible to guess, even with modern hardware trying billions of combinations per second. Strength comes from mathematics, not cleverness.

The core formula is entropy: Entropy = Length × log₂(Pool), where pool is the number of possible characters. More length and a larger character pool both increase entropy, but length has an exponential impact.

What makes a password strong - entropy, length and character pool explained

The 5 Non-Negotiable Properties

  • 1. Long (16+ characters): Each additional character multiplies guesses by 94× (with full pool). NIST SP 800-63B-4 (2024 draft) recommends allowing at least 64 characters and encouraging 15+ for user-chosen secrets; 8 characters is no longer sufficient. A 20-character random password has ~131 bits of entropy — uncrackable for centuries even offline.
  • 2. Random: No dictionary words, names, dates, or keyboard walks (qwerty, 123456, letmein). Human-chosen patterns reduce entropy to ~28 bits, cracked in hours. Use a cryptographically secure pseudorandom number generator (CSPRNG) like crypto.getRandomValues(), not Math.random().
  • 3. Unique: Every site gets a different password. Reuse is the top enabler of credential stuffing — stealing one database lets attackers try the same pair on email, banking, and shopping.
  • 4. Complex (mixed pools): Combining lower (26) + upper (26) + digits (10) + symbols (~32) = 94 options per position, or 6.55 bits per character. More pools per character = higher entropy without adding length.
  • 5. Unpredictable: Not derived from personal information (pet names, birthdays) discoverable via social media or OSINT.

How long is long enough? This table shows why NIST shifted from complexity rules to length-first guidance:

Password TypeEntropyOffline Crack Time (1B guesses/sec)
8-char complex (old minimum)~52 bits~4 months
10-char random~65 bits~1,000 years
12-char random~78 bits~9 million years
16-char random (recommended)~105 bits>10^16 years
4-word passphrase + num/sym~77 bits~14 billion years
20-char random~131 bits10^38 years

Conclusion: 16 characters is the practical minimum for random passwords; 4-word passphrases are a memorable alternative for master passwords.

3 Ways to Generate Strong Passwords — Compared

Not all generation methods are equal. The right choice depends on whether the password will be stored in a manager (random is best) or memorized (passphrase wins).

3 ways to generate strong passwords compared - random, passphrase and human-created

1. Random Password (Most Secure — For Managers)

A CSPRNG picks each character independently from the 94-character pool. Example: J7#k9@pL2!vQ8$zX5&wB1 (20 chars, 131 bits). No patterns, maximum entropy per length. This is the standard for site-specific passwords stored in a manager — nothing needs to be memorable.

Recommended settings: 16-20 characters, all pools enabled (A-Z, a-z, 0-9, !@#$%^&*). Disable a pool only if a specific site restricts it. Never use "pronounceable" modes — they trade entropy for readability.

2. Passphrase (Strong + Memorable — For Master Passwords)

Four to six random words from a 7,776-word list (EFF Diceware) plus a number and symbol: correct-horse-battery-staple-47! (~77 bits). Each word adds ~12.9 bits (log₂(7776)). Four words plus a digit/symbol exceeds 75 bits while remaining typable and memorable. This is ideal for the single master password that unlocks the manager, and for disk encryption.

Use a separator like - or _ and capitalize or add a numeral for sites requiring mixed case, but keep the words truly random — do not choose a quote or lyric.

3. Human-Created (Avoid)

Patterns like P@ssw0rd2024! feel strong but are predictable: dictionary word + leet substitutions (a→@, o→0) + year + symbol. Attackers encode exactly these rules (Hashcat, John the Ripper) and crack them in seconds despite meeting "complexity" checkers. Human entropy is ~1-2 bits per character versus 6.55 for random.

Verdict: For everyday logins, generate random 16-20 character passwords with a manager. For the one password that must be remembered, use a 4-6 word random passphrase.

How to Generate a Strong Password Step-by-Step (Without Code)

Answer-first: pick a method (random or passphrase), set length, generate with a CSPRNG, and store immediately. The entire process takes under 30 seconds.

  1. Choose the type: Random for site logins; passphrase for the master password. A good generator offers both.
  2. Set length and pools: For random, set 16-20 characters and enable all character types. For passphrase, select 4-6 words, word list (EFF long), separator (-), and add a number/symbol.
  3. Generate with CSPRNG: Ensure the tool uses crypto.getRandomValues() (browser CSPRNG) and runs offline in the browser — no server round-trip. This guarantees unpredictability.
  4. Check against breaches: Verify the new password does not appear in the Have I Been Pwned Pwned Passwords list (800M+ hashes). NIST SP 800-63B and OWASP ASVS require screening new passwords against breached corpora.
  5. Store in a password manager: Save immediately with the site's name and URL for autofill. Bitwarden, 1Password, and Proton Pass use zero-knowledge encryption.
  6. Enable 2FA: Add a second factor (TOTP app like Authy or FIDO2 passkey). Even if the password is stolen, the account stays protected.

Important: Generation should be client-side. Browser-side generation means the password never leaves the device or touches a server — critical for sensitive credentials.

Common password mistakes and how attackers crack weak passwords

Common Mistakes That Get Passwords Cracked

1. Reusing Passwords Across Sites

Reusing one strong password everywhere negates its strength. When a site is breached — and breaches are routine — attackers run credential stuffing: replaying the same email+password pairs against Gmail, banking, and shopping. Verizon DBIR and CISA both list reuse as a top initial access vector. The fix is unique passwords per site, which is only feasible with a manager.

2. Dictionary Words and Predictable Transforms

Attackers start with word lists (RockYou, 14M+ real passwords) and apply rules: capitalize first letter, append year, substitute a→@, e→3, i→1, o→0, s→$. P@ssw0rd is tried before aaaaaa. Keyboard walks (qwerty, 1qaz2wsx), repeats (aaa, 111), and sequences (abc, 123) fall just as quickly. Strength meters that only count character types miss these patterns; entropy-based meters do not.

3. Personal Information

Names, birthdays, pets, teams, and addresses are discoverable via social media and data brokers. Targeted guessing (spear-phishing) builds word lists from OSINT and tries them first. Avoid any data tied to identity.

How Attacks Actually Work (Not Hollywood)

  • Offline brute force: With a stolen hash, GPUs try ~1 billion guesses/sec offline (no rate limit). An 8-char password falls in hours; 16-char remains uncracked.
  • Dictionary + rules: Word lists plus transforms crack human patterns in seconds.
  • Credential stuffing: No cracking needed — replaying breached pairs succeeds where reuse exists. OWASP recommends blocking this with rate limiting and breach checks.
  • Phishing + keylogging: Technical strength is irrelevant if the password is tricked out of the user. Managers help by refusing to autofill on fake domains, and passkeys eliminate the secret entirely.

Password Security Best Practices (NIST, CISA, OWASP Aligned)

Password security best practices action plan - 5 steps to secure accounts

Use a Password Manager (The Single Biggest Improvement)

A manager generates, stores, and autofills strong unique passwords, requiring memorization of only one master passphrase. Zero-knowledge architecture means the vault is encrypted locally; the provider cannot read it. This solves both strength and uniqueness at once. Classify: manager (strong random, unique, phishing-aware) vs browser save without master password (weaker) vs memory/reuse (critical risk).

Enable Two-Factor Authentication (2FA) and Move Toward Passkeys

Even a 131-bit password can be phished. 2FA adds a second factor:

  • TOTP app (Authenticator, Authy) — time-based one-time codes, better than SMS
  • FIDO2/WebAuthn passkeys — cryptographic, phishing-proof, the successor to passwords per CISA and FIDO Alliance. Where available, prefer passkeys over passwords entirely.

SMS-based 2FA is vulnerable to SIM swapping and should be a last resort.

Stop Forced Rotation — Change Only on Breach

Historic advice to expire passwords every 90 days backfires: users make minimal changes (Password1 → Password2), reducing security and increasing support costs. NIST SP 800-63B now states: do not require arbitrary expiration; change only when there is evidence of compromise, and screen new passwords against breached lists.

Check Before You Trust — Screen Against Breaches

Before finalizing a password, check if it appears in the Pwned Passwords corpus. OWASP ASVS 2.1.7 requires rejecting breached, dictionary, or previously used passwords at creation. Many managers integrate this automatically.

Additional Best Practices

  • Length over complexity when forced to choose: A 16-character lowercase random string (~75 bits) beats an 8-character mixed string (~52 bits).
  • Allow paste and long passwords: NIST requires systems to allow 64+ characters and pasting (for managers).
  • Do not store in plaintext: Applications must hash with Argon2, scrypt, or bcrypt with salt — never plaintext, spreadsheet, or email.
  • Share securely: If sharing is needed, use the manager's secure sharing feature, not chat or email.
  • Separate work and personal vaults: Limits blast radius if one account is compromised.

How to Check Password Strength Correctly

Many meters are misleading — they count character types but miss patterns (Password123! scores "strong" on naive meters but has ~28 bits and falls instantly). A correct meter estimates entropy and checks breach status:

  • Entropy threshold: 80+ bits is strong, 60+ moderate, below 40 weak
  • Breach check: Search haveibeenpwned.com/Passwords — if the password appears, it is burned regardless of entropy
  • Uniqueness: No current meter can verify this — the user's discipline (manager use) is the control

Generate, do not invent. A generated 16-character random password will always pass a correct meter; a human-invented one often will not.

FAQs About Generating Strong Passwords

How long should a strong password be?

At least 16 characters for random passwords, or 4-6 random words for passphrases. NIST allows up to 64 characters and encourages longer; 8 characters is below the modern threshold. Each extra character multiplies security by the pool size (94× for full ASCII).

What is an example of a strong password?

A random example: k9$Lp2!vQ8@xR1&wZ5#nY (20 chars, ~131 bits, centuries to crack offline). A passphrase example: correct-horse-battery-staple-47! (4 words + number/symbol, ~77 bits, memorable and strong). Both are unique and not reused.

Is a passphrase better than a random password?

For passwords that must be memorized (master password, disk encryption), a 4-6 word random passphrase is better — memorable at 70-90 bits. For site logins stored in a manager, a 20-character random password is stronger (131 bits) and should be preferred since memorability is irrelevant.

Are password managers safe?

Reputable managers (Bitwarden, 1Password, Proton Pass) use zero-knowledge, end-to-end encryption with strong key derivation (Argon2/KDF). Vaults are encrypted locally; the provider cannot decrypt. They remain the recommended method per NIST and CISA, far safer than reuse or personal memory.

Should I change my passwords regularly?

No — not on a schedule. NIST SP 800-63B advises changing only when there is evidence of compromise (breach notification, phishing). Forced 90-day rotation leads to weaker, predictable modifications.

Is it safe to generate passwords online?

Only if generation runs entirely in the browser with a CSPRNG and no server upload. Browser-side generation means the password never leaves the device — verify the tool works offline, shows no network requests during generation, and requires no account.

Conclusion

Strong passwords are not about creativity — they are about mathematics. A 16-20 character random string or a 4-6 word random passphrase provides 80-130 bits of entropy, placing it beyond any brute-force budget, while uniqueness per site neutralizes credential stuffing. Pair generation with a password manager, breach screening, and 2FA or passkeys, and most account takeovers become impossible.

Generate the next password with a secure, offline-capable generator, store it in a manager, and enable a second factor on important accounts — three steps that eliminate the weakest link in most security stacks.