← Back to home

Password & Passphrase Generator

Last reviewed on April 27, 2026.

Two modes. Password draws random characters from your chosen classes. Passphrase picks random words from a built-in word list and joins them with a separator. Both use the browser's crypto.getRandomValues; nothing about your output is sent anywhere.

20

      

Generated locally; never transmitted.

How "strong" is measured

The number that matters is entropy, measured in bits. Each bit doubles the size of the search space. A guesser who can try a billion candidates per second still needs centuries to run through a 90-bit search space. Practical thresholds:

EntropyWhat it protects against
40–60 bitsCasual online attempts (rate-limited login forms).
60–80 bitsOffline cracking of a leaked hash with consumer GPUs.
80–100 bitsWell-funded offline cracking (specialized hardware).
100+ bitsLong-horizon protection against any plausible attacker.

This page reports the entropy of each result so you can size it for the threat you actually face. For a personal master password, aim for 90 bits or higher. For a one-time API key that is rotated weekly, 60 bits is fine. For account passwords stored in a manager, 80–100 bits is the sweet spot — enough margin without making the field unreasonable.

Random characters vs. random words

The two modes target the same goal — high entropy — by different routes.

The "passphrase" approach was popularized by the Diceware project and codified by NIST in its current digital identity guidelines: long, simple, and machine-random beats short, complex, and user-invented every time. The dictionary used here is a curated list of common, easily-typed English words.

Worked example: comparing options

Common mistakes

Where this fits with the other tools on the site

For one-off identifiers that need cryptographic randomness without the password-friendly character set, see the UUID generator. For props in a screen recording (where the value should look real but never be), use the fake prop-data generator instead — never use real generated passwords as on-screen props. After generating a password, you may want to wrap it in a framed callout for documentation.