Another way to create good-security and fairly easily remembered passwords in linux is using this command:
shuf -n <num-words> --random-source=/dev/urandom /usr/share/dict/words
where
<num-words> is the number of dictionary words you want your password to consist of. My
/usr/share/dict/words has about 98,000 words, which gives 16 bits of entropy per word. So let's say I create a password with 5 random words from this dictionary:
rune@runescomp:~$ shuf -n 5 --random-source=/dev/urandom /usr/share/dict/words
unwound
marrowing
jockey
illusion's
sacrament
I now have the password
unwoundmarrowingjockeyillusion'ssacrament which has 80 bits of entropy, and isn't impossible to remember.
80 bits of entropy gives us about 10²⁴ possible combinations. Provided that passwords are stored as their MD5 hash and an attacker got hold of the MD5 hash (
and he knew that he had to find five words from this particular dictionary), it'd take him about one millions years to finish, using
4 x HD 5970 graphics cards.
Of course, you can always choose fewer words, or use a dictionary that doesn't have words like "Ångström" and "prophylaxis". This could lower the entropy but make the passwords more easily rememberable. For example using six words from the
Diceware wordlist, which would give you 78 bits of entropy but an easier to remember password.