Strong password generator

Choose the length and character types, and the tool builds a password with at least one character of each chosen type. The password is never sent anywhere.

Loading the tool…

Processing and privacy: The result is calculated inside your browser and your data is not sent to any server.

How to use it

  1. Enter length, upper case a-z, lower case a-z, digits 0-9, symbols like ! @ # $ and leave out look-alikes i l 1 o 0 o.
  2. The result appears straight away and updates as you edit.
  3. Copy the result, or copy a link that keeps the same values to share it.

How it is calculated

Each character is chosen evenly from the selected pool with crypto.getRandomValues, and a password missing a chosen type is rejected. Strength in bits = log2 of the number of possible passwords, counted exactly by inclusion-exclusion: sum of (-1)^|S| × (pool - sizes of types in S)^length.

Example

Inputs: Length = 16 chars, Upper case A-Z = yes, Lower case a-z = yes, Digits 0-9 = yes, Symbols like ! @ # $ = yes. Result: Password: tGR[#shmj}uE%7O.; Length: 16; Character pool: 94.

Limits and caveats

  • The rating cut-offs (28, 36, 60 and 128 bits) are a common rule of thumb, not an official standard.
  • Some sites reject certain symbols, so turn symbols off if a password is refused.

Questions about this tool

Is the password private?

It is generated in your browser with crypto.getRandomValues and is never sent or stored anywhere.

What length should I use?

Sixteen characters with all types gives about 104 bits, enough for most accounts, ideally kept in a password manager.

What does strength in bits mean?

Each extra bit doubles the guesses needed, so a 60-bit password takes up to about 2^60 guesses to find.