Password Generator Online
Generate strong, random passwords with custom length and character sets.
When a password generator is the right tool
Use this page to create one or more random passwords in the browser, with a length between 4 and 64 and a choice of uppercase, lowercase, digits, and a fixed symbol set. Click Generate to fill the list, then Copy a row. Nothing is uploaded. For a check of a password you already have, use Password Strength Checker.
Use cases
A batch of everyday passwords
Leave the defaults (length 16, letters and digits, five at a time) and Generate. Each row is guaranteed to contain at least one character from every selected set. Turn on Symbols if you want characters from !@#$%^&*()_+-=[]|;:,.<>?.
Shorter or longer secrets
Move the slider as low as 4 or as high as 64. If you select four sets and set the length to 4, the four required characters fill the whole string. Count can go up to 20 per click.
Reading the strength bar
The bar is only a length-and-character-class score on that string. It does not search dictionaries or leak databases. A 16-character mixed-case alphanumeric password usually lands on the Strong bar; a short digits-only string does not.
How generation works
The selected sets are concatenated into a pool. crypto.getRandomValues fills an array of the requested length, and each value is mapped into the pool with modulo. One random character from each selected set is then written at the start of that array, and the array is shuffled with Math.random. Generate rebuilds the whole list; it does not run as you type.
Length 16, uppercase + lowercase + digits (symbols off), count 5
After you click Generate, five 16-character strings appear, each with
a color bar (Weak / Fair / Good / Strong) based on a simple score.The strength labels in that caption are the internal names for the four bar widths; the page itself shows only the bar.
What this tool does not do
It does not exclude similar characters, generate passphrases, or store what it created. It does not evaluate strength with a model such as zxcvbn. It does not upload anything. If you need a digest of some text, use Hash Generator.
How to use Password Generator
- Set the length, choose character sets, and set how many passwords to make (1–20).
- Click Generate.
- Copy a row when you want it on the clipboard, and close the tab when you are done.
Frequently asked questions
What options can I set?
Length is a slider from 4 to 64, default 16. Character sets are uppercase A–Z, lowercase a–z, digits 0–9, and the symbol string !@#$%^&*()_+-=[]{}|;:,.<>? — no space, quote, backslash, slash, backtick, or tilde. Upper, lower, and digits start on; symbols start off. You cannot turn off the last remaining set. Count is 1–20 passwords per click, default 5.
How random are the passwords?
The main characters are taken from crypto.getRandomValues, then reduced modulo the pool size (a small bias). One character from each selected set is also picked with Math.random and written into the string so each enabled set appears at least once (when the length is long enough). A Fisher–Yates shuffle then uses Math.random again. This is fine for many everyday passwords, but it is not a pure CSPRNG pipeline end to end.
What does the colored bar under each password mean?
A simple score, not a breach check or zxcvbn. One point each for length at least 8, 12, and 16, plus one point each if the string contains an uppercase letter, a lowercase letter, a digit, and a non-alphanumeric character. Totals of 0–2 are Weak (25% bar), 3–4 Fair (50%), 5 Good (75%), and 6–7 Strong (100%). The label text is not shown in the UI — only the bar color and width. Changing length or sets does not refresh existing rows until you click Generate again.
Do the passwords appear automatically?
No. The list is empty until you click Generate. There is no auto-refresh when you move the slider. Copy writes one row to the clipboard.
Are the generated passwords uploaded or stored?
No. Generation runs in your browser. The strings remain in the page until you close the tab or generate again. Do not treat this tab as a password manager, and do not generate a credential you care about on a shared screen.
Related tools and guides
References
- crypto.getRandomValues supplies the bulk of each password. The required-character picks and the shuffle still use
Math.random. - A dedicated password manager can store, sync, and audit credentials; this page only produces strings in the current tab.