Password Generator

Secure passwords generated locally in your browser

Generate Random Password Set

Recover from 4 Words


    
  

How it Works

  1. Randomly generate four words: adjective, noun, verb, noun.

    Words are automatically rerolled if any word is shorter than 3 characters or if the final long password exceeds 30 characters.

  2. Capitalize the first letter of each word.

    This guarantees a mix of uppercase and lowercase letters.

  3. Compute a base number from the four words:
    • Take the first three letters of each word and convert them to numbers (A = 1 … Z = 26)
    • For each word:
      • Add the three letter values together
      • Multiply the sum by the word length
      • Multiply again by a prime weight (the first prime of that digit length ending in 7):
        • 1st word (adjective): 7
        • 2nd word (noun): 17
        • 3rd word (verb): 107
        • 4th word (noun): 1087
    • Add all four results together to produce the base number
  4. Derive numeric PINs from the base number:
    • 2‑digit number: NN = base mod 100
    • 4‑digit PIN: PIN4 = base mod 10000
    • 6‑digit PIN: PIN6 = base mod 1000000
  5. Create two password formats:
    • Long password: Adjective‑Noun‑Verb‑Noun‑NN
    • Bank‑accepted (short) password: First two letters of each word, then !, and finally the 2‑digit number
      • Meets common banking requirements: uppercase, lowercase, symbol, and number
      • Stays within 8–12 characters to satisfy typical bank password limits
      • Only uses symbols allowed by banks in passwords

All generation happens locally in your browser. No words, passwords, or PINs are sent to any server. Uses crypto.getRandomValues for better randomness.

Wordlists from top-english-wordlists by @david47k on GitHub.

Base format derived from xkcd.