X Xerobit

Password Generator

Generate strong random passwords with configurable length, character classes, and exclusions. Real entropy meter + GPU crack-time estimate tells you how strong the password actually is. Runs on crypto.getRandomValues() — the same CSPRNG your browser uses for TLS keys.

4weak ↔ nuclear128
Character classes
Safety options
Generated password
Strength
Click Generate.

Live Market Insight

DataForSEO · 2026-04-25
Monthly searches (US)
201,000
"password generator"
Cluster volume
315K
incl. random + strong
CPC
$0.36
Top competitor
bitwarden.com
4/10 SERPs

What makes a password "strong" in 2026

One thing: entropy. Entropy is the number of bits an attacker would have to guess. The math:

entropy_bits = length × log2(alphabet_size)

A 12-character lowercase-only password = 12 × log₂(26) ≈ 56 bits. A 20-character password with all four classes (upper + lower + digits + symbols, ~94 chars) = 20 × log₂(94) ≈ 131 bits. The jump from 56 to 131 bits isn't 2× stronger — it's 2⁷⁵ times stronger. That's the difference between "cracked overnight" and "cracked after the heat death of the universe."

Target bit thresholds

The randomness is real

This tool uses crypto.getRandomValues(), which pulls from your OS's cryptographically secure pseudorandom number generator (CSPRNG) — the same source Chrome uses for TLS keys and WebCrypto. Not Math.random(), which is predictable and must never be used for security.

We also use rejection sampling when mapping random bytes to character alphabets, so every character in the output is uniformly distributed across the alphabet. No subtle bias from naive % alphabet.length mapping.

Pronounceable mode — when to use it

Pronounceable mode alternates consonants and vowels (CVCVCV...), producing passwords like Mikibopu8!. Easier to memorize and type, but the effective alphabet shrinks to ~25 chars, so entropy drops ~20%. Use for passwords you must type by hand (router admin, BIOS password). For everything else, use a password manager and maximum-strength random.

What this tool does NOT do

Crack-time methodology

The displayed crack time assumes an offline attack at 1 trillion guesses/sec, which matches a modern GPU rig cracking a fast-hash target (MD5, NTLM). Against bcrypt or argon2 (what real apps use for password hashing), attackers get 10,000× slower, so a password with 60-bit entropy that cracks in "1 day" against MD5 takes ~27 years against bcrypt. Either way: more entropy = exponentially better.

Frequently asked questions

Is the generated password unique?

At 80+ bits of entropy, the probability of collision across all humans ever is vanishingly small. At 128 bits, it's not a thing that happens.

Why exclude ambiguous characters?

Characters like 0/O, 1/l/I, and |// look identical in many fonts. Excluding them reduces errors when passwords must be typed or transcribed. Costs ~1-2 bits of entropy — negligible.

Can I use this for encryption keys?

For human-entered passphrases that derive keys via PBKDF2/scrypt/argon2, yes. For raw encryption keys (AES-256, etc.), use proper key generation: crypto.subtle.generateKey() or equivalent — those must be raw bytes, not alphabet-restricted strings.

Bulk mode — what's it for?

Generating temporary passwords for multiple accounts at once (e.g., pre-generating for team onboarding, or seeding test data). Generates up to 100 at a time.

Is this really offline?

Yes. After the page loads, you can disconnect from the internet. The CSPRNG lives in your browser.

Related tools

Pillar

Part of Encoding & Crypto.


Written by Mian Ali Khalid. Last updated 2026-04-25.