Home/Blog/Password Security: Entropy, Strength, and Best Practices
๐Ÿ›ก๏ธ
password generatorstrong password tipspassword security 2026

Password Security: Entropy, Strength, and Best Practices

Understand password entropy and why length beats complexity. Learn the difference between random and memorable passwords, how password managers work, and current NIST guidelines.

May 9, 20265 min readby ToolNinja

What Makes a Password Strong?

The key metric is entropy โ€” the measure of unpredictability. A password with high entropy takes longer to crack by brute force.

Entropy is calculated as:

H = L ร— logโ‚‚(N)

Where:

  • L = length of the password
  • N = size of the character set used
  • H = entropy in bits
Character SetSize (N)Entropy per character
Lowercase only264.7 bits
Lower + upper525.7 bits
Lower + upper + digits625.95 bits
All printable ASCII956.57 bits

A 12-character password using the full 95-character set has: 12 ร— 6.57 = 78.8 bits of entropy โ€” extremely difficult to brute-force.


Length Beats Complexity

The most important factor is length, not character variety.

PasswordCharactersEntropyCrack time (10B guesses/s)
P@ssw0rd!10, mixed~30 bitsSeconds (dictionary match)
correcthorsebatterystaple25, lower117 bitsCenturies
Tr0ub4dor&311, mixed~28 bitsHours (dictionary-based)
j9$mK#vQ2!wL12, full ASCII79 bitsYears
xkcd-style-four-random-words25+100+ bitsCenturies

The xkcd comic from 2011 was right: four random common words is more secure and more memorable than P@ssw0rd!.


Random vs Memorable

High-security passwords (use a manager)

For accounts accessed via a password manager:

Random 20-character: T7$kN#m2Qp!vZe9xRw3Y

You never type this โ€” the manager fills it in. Maximize entropy and length.

Passphrases (for accounts you type)

For accounts you type frequently (system login, password manager master password):

correct-horse-battery-staple
purple-cloud-eleven-dragon

4 random words from a 2000-word list gives 4 ร— logโ‚‚(2000) = 44 bits minimum. 5 words = 55 bits. Easy to type, hard to crack.


NIST Password Guidelines (SP 800-63B, 2024)

The current NIST guidelines are a significant departure from older advice:

Do:

  • โœ… Require a minimum of 8 characters (15 for critical accounts)
  • โœ… Allow up to 64 characters
  • โœ… Accept all printable ASCII and Unicode characters (including spaces and emoji)
  • โœ… Check against known-breached password lists (HaveIBeenPwned API)
  • โœ… Require MFA for sensitive operations

Don't:

  • โŒ Require complexity rules (uppercase + number + symbol) โ€” they lead to predictable patterns
  • โŒ Force periodic password changes (unless breach suspected)
  • โŒ Use security questions
  • โŒ Limit character types or allow only certain special characters

How Password Cracking Works

Understanding attacks helps you design better passwords:

Dictionary attacks

Crackers don't try random characters โ€” they start with known passwords and common patterns:

password, password1, Password1, P@ssword1, p@$$w0rd

Any password that follows a predictable substitution pattern (aโ†’@, oโ†’0, eโ†’3) is vulnerable.

Credential stuffing

Breached username/password pairs from one site tried against other sites. If you reuse passwords, one breach exposes everything.

Targeted attacks

For high-value targets, attackers use personal information: birthdays, pet names, addresses, favorite sports teams. Never use any personal information in passwords.

GPU cracking speeds

Modern GPU cracking rigs can test:

  • MD5 hashes: ~100 billion/second
  • bcrypt (cost 12): ~25,000/second
  • Argon2id: even slower (by design)

This is why your password strength is relative to how the site stores passwords. A strong hash function (bcrypt, Argon2id, scrypt) makes cracking infeasible even for passwords that aren't perfect.


Password Storage (for Developers)

If you're building an app with passwords:

// โœ… Use bcrypt with cost factor 12+
import bcrypt from "bcrypt";
const hash = await bcrypt.hash(password, 12);
const valid = await bcrypt.compare(password, hash);

// โœ… Or Argon2id (better, NIST-recommended)
import argon2 from "argon2";
const hash = await argon2.hash(password, { type: argon2.argon2id });
const valid = await argon2.verify(hash, password);

Never:

  • Store plaintext passwords
  • Use MD5 or SHA-1/256 alone (even salted, too fast to crack)
  • Roll your own crypto

Password Managers

The single most impactful security improvement most people can make:

How they work:

  1. Master password + key file โ†’ derived encryption key
  2. Vault encrypted locally with AES-256
  3. Synced encrypted to cloud (only you can decrypt)
  4. Browser extension auto-fills credentials

Recommended options:

  • Bitwarden โ€” open source, self-hostable, free tier is generous
  • 1Password โ€” polished UX, good for teams
  • KeePassXC โ€” local-only, no cloud dependency

For developers: Store API keys, SSH passphrases, database credentials in your password manager โ€” not in .env files in your home directory.


Multi-Factor Authentication (MFA)

Even a perfect password can be phished. MFA adds a second factor:

TypeSecurityPhishable?
SMS OTPWeak (SIM swap attacks)Yes
TOTP (Authenticator app)GoodYes (real-time)
FIDO2 / PasskeyExcellentNo
Hardware key (YubiKey)ExcellentNo

Passkeys are the emerging standard: cryptographic key pairs where the private key never leaves your device. No password to phish, no SMS to intercept.


Try It: ToolNinja Password Generator

Generate cryptographically strong passwords and passphrases with the ToolNinja Password Generator. Configure length, character sets, and exclusions. Runs entirely in your browser โ€” the password is never transmitted anywhere.

Share:๐• Twitterin LinkedIn

Frequently Asked Questions

How long should a password be in 2026?

NIST guidelines recommend at least 15 characters, with longer being better. Length matters more than complexity โ€” a 20-character passphrase is stronger than a 10-character symbol mix.

What makes a password strong?

Length (15+ characters), randomness (not based on words or patterns), uniqueness (different for every site), and unpredictability (not based on personal info).

Is it safe to use a password manager?

Yes โ€” significantly safer than reusing passwords. Use a reputable manager like Bitwarden, 1Password, or Dashlane with a strong master password and 2FA enabled.

What is the difference between hashing and encrypting passwords?

Passwords should be hashed not encrypted. Hashing is one-way and irreversible. Encryption is two-way. Use bcrypt, Argon2, or scrypt for password hashing โ€” never MD5 or SHA256 alone.

๐Ÿฅท ToolNinja