| It’s not easy to create passwords that are both difficult to guess and easy to remember. An an XKCD comic (xkcd.com/936/) describes an algorithm that provides both security and recall by suggesting that a password be composed of "four random common words." For instance, the comic suggests that the password composed of the words "correct," "horse," "battery," and "staple" would provide "~44 bits of entropy" which would require around 550 years for a computer to guess given 1,000 guess per second. |
|
We’re going to write a program called password.py that will create passwords by randomly combining the words from some input files. Many computers have a file that lists thousands of English words each on a separate line. On most of my systems, I can find this at /usr/share/dict/words, and it contains over 235,000 words! As the file can vary by system, I’ve added a version the repo so that we can use the same file. This file is a little large, so I’ve compressed to inputs/words.txt.zip. You should unzip it before using it:
$ unzip inputs/words.txt.zip
Now we should both have the same inputs/words.txt file so that this is reproducible for you:
$ ./password.py ../inputs/words.txt --seed 14 CrotalLeavesMeeredLogy NatalBurrelTizzyOddman UnbornSignerShodDehort