Cretes a strong master password by selecting random words and inserting special characters into them.
This is based on the ideas expressed in xkcd and Computerphile's discussion on how to pick passwords.
Three random words
$ ./out/masterpass -f=dict/example
zygotfickknivabbreviera
Five random words
$ ./out/masterpass -f=dict/example -w=5
utandningfickknivzymologiskfickknivzymologisk
Five random words with a random number.
$ ./out/masterpass -f=dict/example -w=5 -n
utandni7ngfickknivzymologiskfickknivzymologisk
-------^
Five random words with a random number and random special character.
$ ./out/masterpass -f=dict/example -w=5 -n -use-specials
utandni7ngfickknivzymologiskfickknivzym;ologisk
^ ^
Five random words with a random number and a special character from a user-supplied list.
$ ./out/masterpass -f=dict/example -w=5 -n -use-specials -s='#$%^&*()'
utandni7ngfickknivzymologiskfickkniv*zymologisk
^ ^
Five random words with a random number and a special character from a list, and a random character uppercased.
$ ./out/masterpass -f=dict/example -w=5 -n -use-specials -s='#$%^&*()' -u
utandni7ngfickknivzymoloGiskfickkniv*zymologisk
^ ^ ^
You can also specify several dictionaries by giving them as a comma-separated list.
$ ./out/masterpass -f="dict/english,dict/german"
freelyschaltenKäse
Requires Haskell. Specifically, you need ghc
and may need to install extra packages through cabal install
.
Use make
to build, or see the makefile for the build steps.