Skip to main content
DNS Checker(beta)

Strong Password Generator

Random passwords, memorable passphrases, and PINs. Live entropy and crack-time display. Runs 100% in your browser.

Runs entirely in your browser — no upload, no logging
(adjust options to generate)
Weak52 bits of entropy

Brute-force time at 100 billion guesses/sec: 5 hours

8-character passwords are crackable in hours by a single GPU. Bump length to 14+ for offline-safe storage.

Skip characters like 0, O, l, 1, I that look alike

Written by Ishan Karunaratne · Last reviewed:

What Counts as a Strong Password in 2026?

NIST SP 800-63B (2024 revision) sets the floor at 8 characters and the recommendation at 15. OWASP guidance for stored credentials is more nuanced — what matters is total entropy, not character variety. Entropy in bits is length × log2(pool size). A 16-character password with all four character classes (94 possible chars) has 16 × log2(94) ≈ 105 bits — enough to resist offline brute-force from a national-level adversary.

LengthPoolEntropyCrack time (1 GPU, fast hash)
8all 4 sets52 bits~7 hours
10all 4 sets66 bits~12 years
14all 4 sets92 bits~800 trillion years
16all 4 sets105 bitseffectively forever
4 wordsEFF list52 bits~7 hours
5 wordsEFF list65 bits~9 years
6 wordsEFF list78 bits~76,000 years

Crack times assume 100 billion guesses/sec — realistic for one modern GPU against unsalted fast hashes like MD5/SHA-1. Bcrypt/Argon2 are 10⁵–10⁷ times slower, making the same password effectively uncrackable.

Random vs Memorable vs PIN

Use the type selector at the top of the tool to switch between three generation modes. Each has different ideal use cases.

Random Password

High-entropy character string. Use for anything stored in a password manager. 16 chars is a strong default; 20+ for master passwords. Length matters more than symbols.

Memorable Password

EFF Diceware passphrase. Use for anything you have to type from memory — master password, disk encryption, YubiKey passphrase. 5+ words for strong security.

PIN Code

4–12 digit numeric code. Suitable for rate-limited unlock screens (phones, hardware tokens, ATM cards). Never use as a standalone password for an online account.

How This Generator Works

Random bytes come from crypto.getRandomValues(), the browser's CSPRNG. To map random integers onto a character pool without modulo bias, the implementation uses rejection sampling — a random 32-bit integer is rejected if it would land in the partial bucket at the end of the range, then re-rolled. The same technique applies to picking words from the EFF wordlist.

No password ever leaves your browser. The page is delivered over HTTPS, but no XHR or fetch request fires when you generate. You can prove it: open DevTools → Network → click regenerate → confirm the network panel stays empty. Source code is open and inspectable via View Source.

Frequently Asked Questions