Password Generator

Generate cryptographically secure random passwords with a chosen length and character classes.

  • Runs locally in your browser
  • No upload required

Try it

Produces a deterministic result for documentation and tests. Never use a seeded result as a real secret.

Password 1
D2fB~4]NjF)HvTe30kek
Password 2
nPmn..6Y+v_Tv5h5;U1z
Password 3
asxkN[nkgaXJ:q!Or~jF
Entropy per password
129 bits
Pool size
87 symbols
Random source
Web Crypto (CSPRNG)
D2fB~4]NjF)HvTe30kek
nPmn..6Y+v_Tv5h5;U1z
asxkN[nkgaXJ:q!Or~jF

Supported formats

Input
number, boolean
Output
text, number

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

Generated 2 password(s) of 16 character(s) from a pool of 87 symbols (103 bits of entropy).

How it works

  • Read the requested length, character classes and count.
  • Built the character pool from the selected classes.
  • Drew each character from the pool with rejection sampling over the random bytes.
  • Reported the true pool size and the resulting entropy in bits.
  • A seed was supplied for a reproducible example; production generation uses the platform CSPRNG.
  • This tool generates secrets in your browser and never sends, logs or stores them.

Methodology

  1. Build the character pool from the selected classes, optionally removing visually ambiguous characters.
  2. Draw characters from the platform CSPRNG; for a seeded example, derive bytes from a deterministic PRNG instead.
  3. When requested, place one character from each selected class and shuffle with the same random source so the guarantee does not bias the remaining positions.
  4. Report the pool size, the password length and the Shannon-style entropy estimate length × log2(poolSize).

Usage

  1. Choose the password length (8 to 256 characters).
  2. Select the character classes to include and whether to avoid ambiguous characters.
  3. Generate one or more passwords and copy the value you need.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

Two reproducible 16-character passwords

jsonSelect to copy
{
  "length": 16,
  "count": 2,
  "seed": "example"
}

Alphanumeric only, no ambiguous characters

jsonSelect to copy
{
  "length": 20,
  "symbols": false,
  "excludeAmbiguous": true,
  "seed": "example"
}

Guarantee one of each class

jsonSelect to copy
{
  "length": 24,
  "requireEachClass": true,
  "seed": "example"
}

Limitations

Why length beats complexity rules

Modern guidance (NIST SP 800-63B) de-emphasises forced symbol and rotation rules and favours long, random, unique secrets. This generator lets you choose a long random password and guarantees class coverage only when a site requires it.

The entropy figure is honest about what randomness alone contributes. It is not a guarantee about the rest of your account security, which depends on how the service stores and checks the password.

A seed is not a feature for real secrets

The seed option exists so the documentation example and the automated tests are reproducible. A seeded password is predictable and must never be used as a credential. Without a seed, generation uses the platform CSPRNG.

Frequently asked questions

Is the randomness safe?
Yes. When no seed is supplied the characters come from the browser's Web Crypto `crypto.getRandomValues`, the platform CSPRNG. The page has no network or storage path and never transmits what you generate.
How long should a password be?
Length dominates. With all four character classes, 16 characters already provide over 100 bits of entropy; 20 or more is comfortable for high-value accounts. Use a password manager rather than memorising one.
What does the seed option do?
It reproduces a fixed result for documentation and tests. It is not secret and must never be used to create a real credential.

Sources

  1. NIST SP 800-63B: Digital Identity Guidelines — Authentication and Lifecycle Management — NIST
  2. RFC 4086: Randomness Requirements for Security — IETF
  3. MDN Web Docs — Crypto.getRandomValues() — MDN