True Random Password Generator - Strong Secure Passwords

Generate strong random passwords from your browser's secure random source, with custom length, character sets, and an ambiguous-character filter.

Set the length, toggle the character sets you want, and click the generate button. The password is created locally and never leaves your device.

True Random Password Generator - Strong Secure Passwords
Generate strong random passwords from your browser's secure random source, with custom length, character sets, and an ambiguous-character filter.

Fetches 128 bits of atmospheric-noise entropy from RANDOM.ORG to seed a local PRNG that picks every character. The finished password is assembled in your browser and never transmitted; if random.org cannot be reached the tool falls back to the local CSPRNG.

Highlighted sets are included in the character pool. Click a set to toggle it.

About the password generator

A strong password is one an attacker cannot guess faster than trying every possibility — and that property comes from two things only: the size of the character pool and the number of characters drawn from it. This password generator builds passwords character by character from crypto.getRandomValues(), the cryptographically secure random number generator (CSPRNG) that browsers expose through the Web Crypto API. Unlike Math.random(), whose output can be predicted once its internal state is known, a CSPRNG is seeded by the operating system's entropy sources and is designed to be unpredictable even to an attacker who has seen previous output. The generator also applies rejection sampling. A naive implementation maps a random byte onto the character pool with a modulo operation, which slightly favours characters at the start of the pool whenever 256 is not an exact multiple of the pool size. Here, bytes that would introduce that bias are simply discarded and redrawn, so every character in the pool is chosen with exactly equal probability. You control the recipe: length from 4 to 128 characters, and any combination of lowercase letters, capital letters, digits, and punctuation symbols. The ambiguous-character option removes the five glyphs most often confused in print or on screen — zero versus capital O, and one versus lowercase L versus capital I — which is worth enabling for passwords someone might read aloud or type from paper, such as a Wi-Fi key. Note that shrinking the pool this way costs a small amount of strength per character, so add a character or two of length to compensate. Alongside each password the tool reports its theoretical strength in bits, computed as the length multiplied by the base-2 logarithm of the pool size and rounded down. Every additional bit doubles the number of guesses required, so a value in the range of 75 to 90 or more puts a password comfortably beyond offline brute-force attacks for the foreseeable future; around 128 it is effectively unguessable. The calculation assumes truly random selection — it does not apply to passwords a human made up, because names, words, and keyboard patterns are guessed by dictionary attacks long before raw brute force matters. Everything happens in your browser: no password is transmitted, logged, or stored, and refreshing the page destroys it. For day-to-day use, pair generated passwords with a password manager so each account gets a unique one, and prefer greater length over exotic symbols when a site limits which characters you may use. For those who want randomness rooted in a physical process, an optional true-random mode is available. It fetches eight 16-bit integers derived from atmospheric radio noise via RANDOM.ORG's public HTTP interface, combines them into a single 128-bit seed, and drives the sfc32 pseudorandom generator from that seed to pick every character — applying the same rejection-sampling rule, so no character is favoured. Two honest caveats come with it: the seed integers travel over the network (the finished password never does — it is assembled locally in your browser), and once seeded the character sequence is deterministic, so the password's unpredictability rests on the 128-bit atmospheric seed rather than on your operating system's continuously replenished entropy. That is why the local CSPRNG remains the default and the recommended choice for secrets; the seeded mode exists for people who value entropy traceable to a physical, non-algorithmic source. If random.org is unreachable or its per-IP quota is exhausted, the tool automatically falls back to the local CSPRNG, tells you so with a note, and the source badge under the result always states which path actually produced your password. The entropy figure shown is unaffected by the source choice, since it depends only on the length and pool size.

Password generator examples

Common settings and the strength they produce.

SettingsStrengthNotes
16 characters, lowercase + uppercase + digitsabout 95 bitsPool of 62 characters; a solid default for accounts protected by a password manager.
16 characters, all four sets enabledabout 104 bitsAdding symbols grows the pool to 86 characters and buys roughly 9 extra bits at the same length.
12 characters, lowercase + digits, ambiguous excludedabout 60 bitsEasy to read aloud or type from paper — good for a Wi-Fi key — but on the lower edge for high-value accounts.
24 characters, all four sets enabledabout 154 bitsFar beyond any realistic brute-force attack; ideal for master passwords and encryption passphrases.

How to generate a strong password

  1. Choose a length between 4 and 128 characters — 16 or more is a good modern default.
  2. Toggle the character sets to include: lowercase, capitals, digits, and symbols. More sets mean a larger pool and a stronger password.
  3. Optionally exclude ambiguous characters if the password will be read aloud or typed from paper.
  4. Click the generate button; click it again any time to get a fresh password.
  5. Copy the result with the copy button and store it in a password manager.

Password generator FAQ

Is this password generator safe to use?
Yes. Passwords are generated locally with crypto.getRandomValues(), the browser's cryptographically secure random source. Nothing is sent to a server, stored, or logged — you can verify this by loading the page and then going offline before generating.
How long should my password be?
For accounts stored in a password manager, 16 characters with several character sets is a strong default. For master passwords or disk encryption, go to 20 or more. Length beats complexity: each extra character adds more strength than swapping a letter for a symbol.
What does the bits-of-entropy figure mean?
It measures how many guesses an attacker needs: n bits means 2 to the power n equally likely possibilities. Each added bit doubles the work. Passwords above roughly 75-90 bits are safe against offline cracking with current hardware; above 128 bits they are effectively unguessable.
Why exclude ambiguous characters?
Zero and capital O, and one, lowercase L, and capital I, look nearly identical in many fonts. Excluding them prevents transcription mistakes when a password is printed, read over the phone, or typed from a label — at a minor cost in strength you can offset with one extra character.
Are randomly generated passwords better than passphrases?
Both work when generated randomly. A random 16-character password and a five-word diceware passphrase carry comparable strength; the passphrase is easier to memorise, the character string is shorter to type. For the many passwords you never memorise, random strings in a manager are the practical choice.
Can the generated password be biased or predictable?
No. The tool uses rejection sampling, which discards random bytes that would skew the distribution, so every character in the pool is equally likely. And because the CSPRNG is seeded by the operating system, the sequence cannot be reproduced or predicted.