Skip to content
FizzKit

Password Generator

Generate cryptographically secure passwords in four modes: random characters with per-class control, custom charsets and exclusions; EFF-wordlist passphrases (diceware) with separators, capitalisation and extra digits/symbols; numeric PINs; and pronounceable syllable strings. Every result shows its entropy and how long an offline (10 billion guesses/s) or online (1,000 guesses/s) attack would take on average. Sampling uses rejection sampling on `crypto.getRandomValues`, so it is unbiased. Nothing leaves your browser.

Runs locally in your browser
StrengthExcellent≈127 bits
Generated

Fix the options above to generate passwords.

Length
20 chars
Entropy
127.2 bits
Pool
82 chars
Offline crack
≈10¹⁹ years
Online crack
≈10²⁶ years
20
Replaces the classes entirely. Duplicates are ignored.
Handy for systems that reject certain symbols.
at once (max 100) · ⌘/Ctrl+Enter regenerates

How to use Password Generator

  1. 1Pick a mode: Random, Passphrase, PIN or Pronounceable.
  2. 2Adjust length or word count with the slider, and toggle character classes, separators or extras.
  3. 3Read the strength meter and crack-time estimate, then copy a single line or all results as text, JSON or CSV.
  4. 4Press ⌘/Ctrl+Enter to regenerate; Undo restores the previous set.

About Password Generator

Generate cryptographically secure passwords in four modes: random characters with per-class control, custom charsets and exclusions; EFF-wordlist passphrases (diceware) with separators, capitalisation and extra digits/symbols; numeric PINs; and pronounceable syllable strings. Every result shows its entropy and how long an offline (10 billion guesses/s) or online (1,000 guesses/s) attack would take on average. Sampling uses rejection sampling on `crypto.getRandomValues`, so it is unbiased. Nothing leaves your browser.

Password Generator is part of FizzKit — a collection of focused developer and ad-tech tools. Because everything runs locally, it works offline once loaded and never exposes your data to a remote server.

Frequently asked questions

Yes. Every character and word is drawn with `crypto.getRandomValues` using rejection sampling, so no value is more likely than another. The generator never falls back to `Math.random`.