Skip to content

๐Ÿ” Password Generator

Live at: aguidetocloud.com/password-generator/ Built: April 2026 Cost: $0 โ€” 100% client-side JavaScript, zero API calls Accent colour: Fuchsia #D946EF CSS namespace: .pwgen-* Body class: page-password-generator


What It Does

A world-class password generator and strength checker that creates unbreakable passwords, passphrases, PINs, and custom recipe-based passwords. Includes a real-time strength analyser with breach database checking via Have I Been Pwned's k-anonymity API. Everything runs 100% in the browser โ€” no passwords are ever sent to any server.

Think of it like 1Password's generator + Bitwarden's strength checker + EFF's Diceware โ€” all in one free tool with no sign-up, no ads, and no data collection.


Why This Tool Exists

The Problem

  • Most online password generators are ad-laden and suspicious โ€” users don't trust them
  • Built-in browser generators are basic โ€” no passphrase mode, no strength feedback
  • 1Password and Bitwarden lock generators behind account creation
  • Existing tools give misleading strength scores โ€” length-based, not entropy-based
  • No tool combines generation + checking + breach lookup + educational passphrase builder in one place
  • Enterprise users need policy-compliant passwords (Word-Number-Word-Symbol) but have no easy generator

Our Differentiator

Feature 1Password Bitwarden Ours
Generation modes 2 (Random, Memorable) 2 (Password, Passphrase) 5 (Random, Passphrase, PIN, Pronounceable, Recipe)
Strength checker โŒ None Basic Advanced (entropy + pattern detection + HIBP breach check)
Recipe/template mode โŒ โŒ โœ… Word-0000-Word-! patterns
Breach database check โŒ โŒ โœ… HIBP k-anonymity (privacy-safe)
Crack time estimates โŒ Basic 3-tier (online, offline, GPU cluster)
Pattern detection โŒ โŒ โœ… Keyboard, sequential, leet speak, dates, repeats
Word list Unknown EFF (7,776) EFF Diceware (7,776 words, loaded from JSON)
Percentile comparison โŒ โŒ โœ… "Stronger than ~95% of passwords"
Sign-up required โœ… Free trial โœ… Account โŒ None
Cost $2.99/mo+ Free (limited) Free forever

Architecture

Files

content/password-generator/
  _index.md                    # Front matter + 8 FAQ items

layouts/password-generator/
  list.html                    # Template โ€” 3 tabs, JSON-LD, tool-hero

static/css/
  password-generator.css       # 24 KB โ€” .pwgen-* namespace, fuchsia accent

static/js/
  password-generator.js        # 61 KB โ€” all logic, CSPRNG, strength analysis

static/data/password-generator/
  wordlist.json                # 76 KB โ€” 7,776 EFF diceware words

Dependencies

  • Zero CDN dependencies โ€” pure vanilla JS
  • Web Crypto API โ€” crypto.getRandomValues() for CSPRNG
  • Web Crypto subtle โ€” crypto.subtle.digest('SHA-1') for HIBP hash
  • HIBP API โ€” api.pwnedpasswords.com/range/ (k-anonymity, only 5-char hash prefix sent)

State Management

const S = {
  mode: 'random',           // Current generation mode
  password: '',             // Current generated password
  passwordVisible: true,    // Eye toggle state
  checkVisible: false,      // Check tab eye toggle
  wordList: null,            // Loaded EFF word list (7,776 words)
  wordListIsFallback: false, // True if JSON fetch failed
  history: [],              // Last 20 passwords (session-only)
  ppWords: [],              // Current passphrase builder words
  ppWordCount: 5,           // Default word count
  genCounter: 0,            // Async race prevention counter
  bulkPasswords: null       // Last bulk generate results
};

Features โ€” Tab by Tab

Tab 1: ๐Ÿ” Generate

5 generation modes:

Mode How it works Entropy source
๐ŸŽฒ Random Chars from pool (upper/lower/num/sym) length ร— log2(poolSize)
๐Ÿ“– Passphrase Random words from EFF list wordCount ร— log2(7776) โ‰ˆ 12.9 bits/word
๐Ÿ”ข PIN Digits only (4-12) length ร— log2(10)
๐Ÿ—ฃ๏ธ Pronounceable CV syllable structure (onset+nucleus+coda) syllables ร— log2(33ร—5ร—14)
๐Ÿงพ Recipe User-defined pattern templates Token-based calculation

Quick-start presets: - ๐Ÿฆ Banking โ€” 20 chars, all character types - ๐Ÿ“ฑ Phone PIN โ€” 6-digit PIN - ๐Ÿง  Memorable โ€” 4-word passphrase - ๐Ÿ“ถ WiFi โ€” 12 chars, no symbols

Other features: - One-click copy with โœ“ feedback - Regenerate button (๐ŸŽฒ) - Show/hide toggle (๐Ÿ‘๏ธ) - Dark/light readability preview (๐ŸŒ™/โ˜€๏ธ) - Strength meter bar with animated fill + glow on Very Strong - Crack time estimate (offline, 100B guesses/sec) - Percentile comparison ("Top 2%") - Bulk generate 10 โ†’ copy all or download .txt - QR code export โ†’ opens /qr-generator/ with password pre-filled - Password history (last 20, session-only) - Keyboard shortcuts: Enter = regenerate - Word count hint (โš ๏ธ < 5 words, โœ… 5+ words)

Tab 2: ๐Ÿ” Check My Password

Real-time analysis as you type: - Score ring (SVG, 0-100) with animated stroke - Strength label (Very Weak โ†’ Very Strong) with colour - Percentile ("Stronger than ~95% of passwords") - 3-tier crack time estimates: - Online (1K/sec, rate-limited) - Offline fast hash (100B/sec, MD5-class) - GPU cluster (1T/sec) - Character composition bars (length, upper, lower, numbers, symbols, unique)

Pattern detection (warnings): - Common password database (40+ entries) - Keyboard patterns (qwerty, asdfgh, 1qaz2wsx, etc.) - Sequential characters (abc, 321) - Repeated characters (aaa) - Date patterns (2024, 12/25/2024) - Leet speak substitutions (p@ssw0rd โ†’ password) - Low character variety

HIBP breach check: - Uses k-anonymity โ€” only first 5 chars of SHA-1 hash sent - Shows "Found in X,XXX data breaches!" or "Not found โœ…" - Graceful fallback if offline/blocked

Privacy badge: "Your password is analysed locally โ€” never sent to our servers"

Tab 3: ๐Ÿงฉ Word Builder

Interactive passphrase construction: - Word chips โ€” click any word to reroll just that one - Pop animation on rerolled chips - Add/Remove word buttons (min 2, max 12) - Copy full passphrase button - Reroll All button

Options: - Separator: hyphen, space, dot, underscore, none - Capitalise each word - Append random number - Append random symbol

Entropy breakdown table: - Word count, word list size, entropy per word - Total entropy (bits) - Crack times (online, offline, GPU) - Equivalent random character count


Recipe Mode โ€” Pattern Reference

Token Output Entropy
Word Random capitalised word from EFF list ~12.9 bits
0 Random digit (0-9) ~3.3 bits
! Random symbol from 13-char set ~3.7 bits
A Random uppercase letter ~4.7 bits
a Random lowercase letter ~4.7 bits
C/c Random consonant (upper/lower) ~4.4 bits
V/v Random vowel (upper/lower) ~2.3 bits
Any other char Literal (kept as-is) 0 bits

Built-in presets:

Name Pattern Example output
Word-NUM-Word-SYM Word-0000-Word-! Scrabble-4776-Sulphuric-?
WordSymWordNums Word!Word0000 Plausibly^Mandolin2267
Words-with-Nums Word-Word-Word-00 Giddily-Shady-Matted-87
Syllables Cvcc0-Cvcc0-Cvcc0! Xayk4-Mupt4-Rimz2#

Strength Analysis Algorithm

Entropy Calculation

For Random mode:

entropy = length ร— log2(poolSize)
where poolSize = sum of: lowercase(26), uppercase(26), digits(10), symbols(33)

For Passphrase mode:

entropy = wordCount ร— log2(wordListSize)  // 7776 โ†’ ~12.9 bits/word
+ log2(1000) if number appended

For Pronounceable mode:

syllables = ceil(length / 2.6)
entropy = syllables ร— log2(33 ร— 5 ร— 14)  // onset ร— nucleus ร— coda
+ syllables ร— 1 if mixed case
+ log2(10 ร— length) if numbers

Pattern Penalties

Pattern Penalty
Common password (exact match) Entropy capped at 5 bits
Keyboard pattern found Entropy ร— 0.3
Sequential characters (per instance) Entropy ร— (1 - 0.15 ร— count)
All same character (unique=1) Entropy capped at 10 bits
Very low variety (unique โ‰ค 3) Entropy ร— 0.25
Repeat โ‰ฅ 3 chars (general) Entropy ร— 0.6
Date-like pattern Entropy ร— 0.7
Leet speak โ†’ common password Entropy ร— 0.3

Score Mapping

Entropy range Score range Label
0-28 bits 0-20 Very Weak
28-36 bits 20-40 Weak
36-60 bits 40-60 Fair
60-80 bits 60-80 Strong
80+ bits 80-100 Very Strong

Percentile Mapping

Based on breach database studies (~50% of real passwords score <20):

Score Percentile
0 Top 100%
20 Top 50%
40 Top 25%
60 Top 10%
80 Top 2%
100 Top 1%

Pronounceable Algorithm

Uses syllable structure: Onset + Nucleus + Coda

  • Onsets (33): b, c, d, f, g, h, j, k, l, m, n, p, r, s, t, v, w, z, br, ch, cl, cr, dr, fl, fr, gr, pl, pr, sh, sl, sp, st, tr
  • Nuclei (5): a, e, i, o, u
  • Codas (14): (emptyร—9), n, m, s, l, r โ€” ~64% open syllables for natural rhythm

This produces genuinely speakable passwords like "frulumtomajugo", "prenjemnawosin", "vizuchakuremef".


SEO

  • JSON-LD schemas: WebApplication + FAQPage (from baseof seo-jsonld partial) + BreadcrumbList
  • 8 FAQ items covering: safety, strength meter, passphrases, storage, strong passwords, offline use, crack time, word list
  • Pagefind searchable block with keywords
  • Meta description optimised for "free password generator" intent

Integration Checklist (for future session)

Items NOT done yet (deferred to a dedicated integration session):

  • [ ] Add to data/toolkit_nav.toml (prev/next nav)
  • [ ] Add to baseof.html body class chain (page-password-generator)
  • [ ] Add to data/tool_colours.toml (โš ๏ธ #D946EF hue 292ยฐ is 8ยฐ from AI News 300ยฐ โ€” may need adjustment)
  • [ ] Add card to /free-tools/ page
  • [ ] Add to nav dropdown under appropriate category
  • [ ] Add to homepage toolkit section
  • [ ] Bump tool_count in hugo.toml
  • [ ] Bump cache_version in hugo.toml
  • [ ] Add SWA cache route for /data/password-generator/* in staticwebapp.config.json
  • [ ] Run full smoke test after deploy
  • [ ] Add counter entry to data/tool_counters.toml

Maintenance

  • Word list: Static EFF diceware list โ€” no updates needed unless EFF publishes a new version
  • Common passwords: Consider expanding the 40-entry set periodically from breach database releases
  • HIBP API: Free, no auth, no rate limits for the range API. If they change the API, update the checkHIBP() function
  • Staleness: ๐ŸŸข Low โ€” pure client-side tool with no data dependencies