Password Generator

Strong random passwords drawn from a character pool you control. Set the length, toggle Lowercase, Uppercase, Numbers, and Symbols, optionally add your own custom characters, and ask for up to 100 passwords at once. The generator runs in your browser; nothing uploads. For unique IDs rather than passwords, see the UUID generator.

Input
Line 1:1 LF cloud_done Saved locally
Result Password Generator
0 lines 0 chars

Random passwords with a charset you pick

Each password is built character by character from a pool you assemble. Lowercase adds a-z, Uppercase adds A-Z, Numbers adds 0-9, and Symbols adds !@#$%^&*()-_=+. Anything you type into the Custom field is appended to the pool, so you can include slashes, dots, or any character your password policy requires.

The Length input controls how long each password is, from 4 up to 128 characters. The Count input controls how many passwords you get back, one per line, up to 100. If every toggle is off and the custom field is empty, the generator falls back to lowercase plus digits so you never get an empty pool.

Randomness comes from Math.random() in your browser, which is fine for everyday passwords but is not cryptographically strong. For high-stakes secrets (signing keys, encryption material) use a system tool that draws from a CSPRNG. For login passwords, store the result in a password manager rather than reusing it across sites.

How to use password generator

  1. 1Open the tool. The input panel can be left empty.
  2. 2Set Length (4-128) and Count (1-100) in the option panel.
  3. 3Toggle Lowercase, Uppercase, Numbers, Symbols, or fill Custom to shape the character pool.
  4. 4Turn on No ambiguous to drop look-alikes (0 O o l 1 I |) and Min one of each to guarantee at least one character from every enabled class.
  5. 5The output panel shows your passwords, one per line.
  6. 6Click Copy to grab them all, or paste line by line into a password manager.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Charset is fully under your control

The four toggles each contribute a fixed group: Lowercase adds abcdefghijklmnopqrstuvwxyz, Uppercase adds ABCDEFGHIJKLMNOPQRSTUVWXYZ, Numbers adds 0123456789, Symbols adds !@#$%^&*()-_=+. Whatever you type in Custom is appended verbatim, including spaces if you want them.

No-ambiguous-characters mode

Turn on No ambiguous to drop the look-alikes that are easy to misread on a bad font: 0 / O / o, l / 1 / I, and the pipe |. Useful when the password will be transcribed verbally or copied off a screenshot.

Min one of each enabled class

Turn on Min one of each to guarantee that every enabled class (Lowercase, Uppercase, Numbers, Symbols) is represented at least once in the output. The generator seeds one character from each class, fills the rest from the combined pool, then shuffles. Required by many corporate password policies.

Length and bulk count

Set Length from 4 to 128 characters per password. Set Count from 1 to 100 to get a batch in one click, one password per line. Useful for seeding a fleet of test accounts.

Empty-pool fallback

If you switch every toggle off and leave Custom empty, the generator silently falls back to lowercase plus digits so you never end up with a blank result. Re-enable a toggle or fill Custom to take back control.

Browser-only randomness (Math.random)

Each character is selected via Math.random(), which is the JavaScript engine's general-purpose pseudo-random source. That is suitable for routine login passwords; it is not a cryptographic source. Treat the output as low-stakes random text and store anything you keep in a password manager.

No upload, no log, no server

The whole generator runs in JavaScript on your machine. The output panel is the only place the passwords ever appear. Nothing is sent to our servers.

Worked example

Three passwords at length 20 with all four classes on, drawn from the combined pool of letters, digits, and the default symbol set. Each line is one password.

Input
Length: 20
Count: 3
Lowercase, Uppercase, Numbers, Symbols: on
No ambiguous: off
Min one of each: off
Output
Kp7$mB2-vQx9rT4!nLgZ
h8#Rj4yF2pXq6vW3-bC9
Yz!5tQ7nMx2-Rk8bV4hL

Settings reference

Option Effect on output
Length Characters per password. Default 20, minimum 4, maximum 128.
Count How many passwords to emit. Default 1, maximum 100. One per line.
Lowercase Adds a-z (26 chars) to the pool. On by default.
Uppercase Adds A-Z (26 chars) to the pool. On by default.
Numbers Adds 0-9 (10 chars) to the pool. On by default.
Symbols Adds !@#$%^&*()-_=+ (14 chars). On by default.
No ambiguous Drops 0, O, o, l, 1, I, and | from the pool. Off by default.
Min one of each Forces at least one character from every enabled class to appear. Off by default.
Custom Free-text field. Every character you type is appended to the pool. Leave blank to use the toggles alone.
Empty-pool fallback If every toggle is off and Custom is empty, the pool falls back to lowercase plus digits. This is fixed.
Random source Math.random(). Suitable for everyday passwords; not cryptographic.

FAQ

Are these passwords cryptographically secure?
No. They come from Math.random(), which is a general-purpose pseudo-random source in your browser. It is fine for routine login passwords. For high-stakes secrets, generate them with a system CSPRNG (for example openssl rand -base64 32).
Can I include unusual characters my policy requires?
Yes. Type any extra characters into the Custom field. They are appended to the pool alongside whatever the toggles contribute. Slashes, dots, brackets, even spaces are all valid.
What happens if I switch every toggle off?
If the Custom field is also empty, the generator falls back to lowercase plus digits so the output is never blank. Toggle one of the four groups back on or fill Custom to control the pool.
How do I get one password rather than ten?
Set Count to 1. The output panel will hold a single line.
Is the output sent anywhere?
No. Generation happens in your browser; nothing leaves the page. Closing the tab discards the passwords.