Random Password Generator

A nifty program which generates random passwords that resemble english. Writing down long passwords is very insecure, but trying to memorize 20 completely random characters is just about impossible. The passwords this program generates are pronouncable, but not actually words, which makes them quite easy to remember, but not (easily) guessable.

A couple examples (It's a little hit-and-miss, but you can "say" these!):

  • bachmenetyar
  • mationktonyt
  • tyardvancend
  • nnereteratex
  • aplingbirdne
  • eronfulfunkp
  • phibilieszil
  • tedxtablerze
  • itiesomensen
  • nsciesiextil

The program uses a markov chain algorithm to generate the passwords, which picks each character based on how often the sequence exists in its training data, which is the entire english dictionary in this case.

A NOTE ON SECURITY: I'm not a cryptologist, and when measured on that scale, I don't know what I'm doing. That understood, I will say with some certainty that the base passwords, while easy to remember, are somewhat significantly reduced in entropy, just due to the way they're produced. This is obviously undesirable, but the 12 character length is about at the limit of convenient rememberability, while being long enough to give brute force attacks something reasonable to chew on for a meaningful length of time, assuming someone with a supercomputer or a botnet doesn't have it out for you. The strength of these passwords will be further improved with some manual modification to include upper case letters at convenient points, and some substitution or addition of numbers and punctuation where they fit. So, caveat emptor, but with some educated use, I think the security is passable.



It's written in python, and it uses TK (in python's standard library) to run the UI.

This project is very old, and has been somewhat neglected. It was last tested in python version 2.5.


Version 0.9
Source (.tar.gz)
Windows (.zip)

v0.9 is the first and only version.


The license is Lesser GPL.

Assets are either my own (the header image), or public domain (the dictionary).