Github: Sh3r4/EFFWords

EFFwords is a golang passphrase generator based on the EFF diceware passphrase method.

It includes the zxcvbn-go library for calculating the approximate time required to crack a given password. Passwords to evaluate can be provided by the user.


The following example generates 5 passphrases without including special chars, including the optional crack-time calculation in the format password [{seconds}:{human_readable}]

$ EFFWords -zS 5
unicornRetired0sedimentundone [2.851973e+12:centuries]
recaptureFactoidangrilye6aseful [3.579311e+20:centuries]
Bul8lfightmusketafarcelibate [1.532659e+16:centuries]
pregnantfridayTacklingchirp2y [7.706819e+13:centuries]
frecklesAppli8edhatemammary [6.627773e+14:centuries]

These examples evaluate existing passwords:

$ EFFWords -Z _Admin123
_Admin123 [1.590300e+01:instant]

$ EFFWords -Z "5hEehPPPnK&5wQ8^8Pm%[email protected]*xBYg1wjbzDNwhGRLh9RR3V8AC8CRdXOozsR4v^VzkV"
5hEehPPPnK&5wQ8^8Pm%[email protected]*xBYg1wjbzDNwhGRLh9RR3V8AC8CRdXOozsR4v^VzkV [3.240504e+137:centuries]


Author:  Morgaine Timms   (@Sh3r4)
License: MIT
Warning: Some of the following options when used in combination can
         significantly weaken the pass-phrases generated.
         You probably know what you are doing though, yeah?

Output Formats:
  * standard:
  * crack-time (-z):
      password [{seconds}:{human_readable}]

Things It Does:
  -c, --caps-position int
      Capitalise the word at this index. (default -1)
  -Z, --check-this-pass string
      Don't generate, just evaluate the strength of a provided pass
  -z, --crack-time
      Check password strength with zxcvbn
  -M, --maximum-chars int
      Maximum characters for passphrases. Truncates. (default -1)
  -m, --minimum-chars int
      Minimum characters for passphrases. (default -1)
  -o, --output-to-file string
      Filepath to output to
  -C, --prevent-caps
      Prevents capitalisation in passphrase
  -I, --prevent-int
      Prevents integers in passphrase
  -S, --prevent-special
      Prevents special chars in passphrase
  -q, --quantity int
      Number of passphrases to generate (default 1)
  -R, --random-caps
      Capitalise a random character in each passphrase
  -v, --verbose
      Show all the things
  -w, --wordcount int
      Number of words per passphrase. (default 4)


I lay no claim to the included wordlist created by the EFF. I am using it in good faith, with full attribution to the Electronic Frontiers Foundation. I believe the list to be licensed under the CC 3.0 Attribution license https://creativecommons.org/licenses/by/3.0/us/