Password Generator — Methodology Handbook
The Password Generator makes three kinds of secret — random character passwords, memorable passphrases and numeric PINs — entirely inside your browser, reports the strength of each as entropy in bits, and translates that entropy into the time an attacker would need under three realistic scenarios. It also checks a password you already have, locally, and tells you which patterns weaken it.
👉 Open the tool: calculatorai.app/password-generator
This handbook explains where the randomness comes from, how the numbers are computed, what the tool deliberately does not do, and where its word list comes from.
Where the randomness comes from
Every generated character, word, separator and digit is drawn with crypto.getRandomValues, the Web Crypto API that browsers expose to pages. It is the operating system's cryptographically secure random source — the same one password managers, TLS libraries and key generators use. Nothing is derived from the clock, Math.random(), or any seed a page could reproduce.
Uniformity matters as much as the source. Picking "a random index from 0 to 89" by taking a 32-bit number modulo 90 would make the first few characters of the pool very slightly more likely than the rest. The tool uses rejection sampling instead: it discards any 32-bit value that would land in the uneven tail and draws again, so every character in the pool is exactly as likely as every other.
The page makes no network request that carries a password, stores no generated value, and keeps nothing server-side — there is no server side. The only thing remembered is your option settings (mode, length, character classes), in this browser's local storage, so the tool opens the way you left it. You can confirm all of this in the browser's network tab: generating a thousand passwords produces no requests.
Random passwords
Options. Length from 6 to 128 characters; uppercase (26), lowercase (26), numbers (10) and symbols (28: !@#$%^&*()-_=+[]{};:,.<>?/~|) as independent classes; avoid look-alikes removes 0 O o 1 l I | ' " ; : , .`; no repeated characters draws without replacement; start with a letter; and a list of symbols to leave out for sites that reject some.
Guaranteed mix. At least one character from every enabled class is placed and then shuffled into a random position. A 20-character password with all four classes enabled will always satisfy a "must contain a number and a symbol" rule. The cost is negligible: the guarantee removes only the tiny fraction of the space that had no digit or no symbol at all.
Entropy. For a pool of N characters and length L, the space is Nᴸ and the entropy is L · log₂ N bits. With all four classes, N = 90 and each character adds about 6.5 bits: 12 characters ≈ 78 bits, 16 ≈ 104, 20 ≈ 130. When no repeated characters is on, the space is the falling factorial N · (N−1) · … · (N−L+1), and the entropy shown is that (slightly smaller) number. Excluding symbols or look-alikes shrinks N and the shown bits follow.
Passphrases
Word list. Words are drawn from the EFF Long Wordlist — 7,776 words chosen by the Electronic Frontier Foundation for diceware-style passphrases: common, unambiguous, three to nine letters, no offensive or easily confused words. Each word chosen uniformly from 7,776 is worth log₂ 7,776 ≈ 12.9 bits regardless of how long or "unusual" it is. The list is bundled with the page and loaded only when the passphrase tab is opened.
Options. Three to twelve words; a separator (hyphen, space, period, underscore, comma, a random digit, a random symbol, or none); capitalisation (none, first word, every word, or a coin toss per word); and optionally one digit and/or one symbol appended to a random word, for sites that insist on them.
Entropy. words × 12.9 bits, plus one bit per word for random capitalisation, log₂ 10 + log₂ words for an appended digit, log₂ 28 + log₂ words for an appended symbol, and log₂ 10 or log₂ 28 per separator when separators are random. Fixed separators and fixed capitalisation add nothing — an attacker who knows the scheme knows them — and the tool does not pretend otherwise. Five words are about 65 bits, six about 78, seven about 90.
PINs
Four to sixteen digits, each uniform from 0–9, so digits × 3.32 bits: a six-digit PIN is under 20 bits and a four-digit one is 13. The tool says so plainly. A PIN is only safe where the thing it protects locks or wipes after a few wrong attempts — a phone, a card, a hardware key — and never as a password for anything reachable over the internet.
Strength and time to crack
The strength shown is the entropy of the construction — the size of the space the password was drawn from — not a judgement of its appearance. Levels: under 28 bits very weak, under 40 weak, under 60 fair, under 90 strong, 90 and above very strong.
Time to crack is the entropy converted to guesses (2ⁿ) and divided by a guess rate. Three rates are shown because the honest answer depends on how the password is attacked:
| Scenario | Guesses per second | What it models |
|---|---|---|
| Online guessing | 100 | Typing guesses into the real login form, throttled by rate limits and lockouts. Real services allow far fewer; 100/s is generous to the attacker. |
| Leaked, slow hash | 100,000 | The site's database was stolen and passwords were stored with a deliberately slow function (bcrypt, scrypt, Argon2). A GPU manages thousands to tens of thousands of guesses per second per hash. |
| Leaked, fast hash | 100,000,000,000 | The database was stolen and passwords were stored with MD5, SHA-1, NTLM or a single SHA-256 — or not hashed at all. A single modern GPU rig reaches this rate. |
The time shown is the full space (the attacker's worst case); on average a password is found half-way through. Rates are round, conservative figures for consumer hardware in 2026, not a measurement of any specific attack, and they will drift upward over the years. Because you cannot see how a site stores passwords, the sensible target is to be comfortable in the third column.
The checker
The "Check yours" tab estimates the entropy of a password you type, from its structure: the size of the character pool it uses times its length, then reduced for the patterns cracking tools try first — repeated characters or groups, alphabetical or numeric runs, keyboard walks (qwerty, asdf, 1qaz), years, letter-for-symbol substitutions (a→@, s→$), and a built-in list of the most common passwords and words, compared after undoing those substitutions. A dictionary word with a capital and a year scores as a handful of bits, which is what it is worth.
The estimate is deliberately conservative and it is an estimate: a short list of common words cannot recognise every dictionary word, and a password nobody has ever used may still be weak if it follows a scheme. Treat a "strong" from the checker as "no obvious problem", and a generated password as the reliable answer. The checked password is never sent, stored or logged — the check runs in the same page code as the generator.
What the tool does not do
- It does not store passwords, sync them, or fill them into sites. That is a password manager's job, and the handbook recommends one: a manager stores one unique password per site and fills it only on the real domain.
- It does not check a password against breach databases (services like Have I Been Pwned). Doing that honestly requires sending at least part of a hash to a server, which this page never does.
- It does not rate a password by how it looks. Two passwords of the same shape can differ by a hundred bits depending on how they were made; the tool reports how they were made.
- Its time-to-crack figures are not a promise about any specific service. They are arithmetic on stated rates, so that two passwords can be compared honestly.
Sources and attribution
- EFF Long Wordlist (7,776 words): Electronic Frontier Foundation, Deep Dive: EFF's New Wordlists for Random Passphrases (2016), eff.org/dice. Licensed under Creative Commons Attribution 3.0; used and redistributed with attribution.
- Randomness: the Web Cryptography API,
Crypto.getRandomValues(), as implemented by every current browser. - Guidance on length over complexity, against forced rotation, and for checking against known-compromised passwords: NIST Special Publication 800-63B, Digital Identity Guidelines — Authentication and Lifecycle Management.
- Character pools and the entropy formulas are those stated above; the crack-time rates are round figures chosen to bracket consumer hardware and are documented as such on the page.
Related tools
- QR Code Generator — a Wi-Fi QR code carries the network password inside the squares; generate the password here and the code there.
- QR Codes Tracker — dynamic codes can be protected with a password before they redirect.
- Invoice Generator and the other document generators — free, no account.
More tools at calculatorai.app/documents.
Apri il generatore di password →Manuale del generatore di QR code →