Memorable password generator
2015-04-24 - [updated 2015-08-06]

This is a recipe for creating a memorable password (passphrase) from a text file. Ideally you want to concatenate the text of several books to obtain a text file with a rich vocabulary of greater than 20,000 words. Here’s one I prepared earlier.

I’m using a Macintosh computer so I need to install gshuf via Homebrew1. After installing Homebrew use:
brew install coreutils

Generate wordlist.txt (example here) which is a sorted list of unique words from text.txt:
tr -cs A-Za-z '\n' < text.txt | tr A-Z a-z | sort | uniq > wordlist.txt

Check the number of words in wordlist.txt with:
wc -l wordlist.txt

Grab six random words from wordlist.txt and write them to sixwords.txt (example here):
tr -cs A-Za-z '\n' < wordlist.txt | tr A-Z a-z | sort | uniq | gshuf --random-source=/dev/random -n6 > sixwords.txt

That’s about it.

(1) Linux will likely have shuf already installed instead of gshuf. Linux users should replace gshuf with shuf in the above code.