A simple application written to generate a random password created from a pool of English three letter words.
This application will generate password suggestions based on a pool of several hundred three letter English words. The words are selected from the pool randomly, and then displayed to the screen so you can choose one for use as a very secure password.
It is important that you combine the three letter words together to form a single string of characters (without the spaces)—to obtain a password with a minimum length on 9 characters. Longer combinations are stronger, but unfortunately not all sites or computer systems accept really long passwords still.
You can of course add digits/numbers to your password also, and punctuation characters too if you wish—but it would be wiser to keep the password simple, and easy to remember, but change it more frequently instead, using a fresh newly generated one every few weeks.
Update 21 March 2015: the larger pool of three letter words used in the c language version (instead of Go) available here: sugpass has now been added to this application also.
Update 22 Jan 2015: there is a newer version of this program with a larger pool of three letter words. The application is written in the c language (instead of Go) and is available here: sugpass
For more information see the related blog posts here:
The program is run from a command prompt—so on Windows using Powershell or the Command Prompt, and on Linux or MacOSX in a Terminal window using a shell such as bash. When the progam is run without any command line arguments, it displays the following output:
THREE WORD - PASSWORD GENERATOR
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
• Number of three letter words available in the pool is: 573
• Number of three letter words to include in the suggested password is: 3
• Password character length will therefore be: 9
• Mixed case passwords to be provided: false
• Offering 3 suggested passwords for your consideration:
din wry ran
ova ram lit
ski yea koa
All is well
If you need to generate a 12 character password randomly created from three letter words—perhaps as part of a command line pipe, you could use this following options:
./passgen-linx64 -q -r -w 4
coobarmenspy
The full list of command line arguments available are shown below, and also when you run: passgen -help
:
Usage of ./passgen:
-c=false: USE: '-c=true' to get mixed case passwords [DEFAULT: lowercase]
-h=false: USE: '-h' to provide more detailed help and background to this programs purpose
-q=false: USE: '-q=true' to obtain just ONE password - no other screen output [DEFAULT: additional info output]
-r=false: USE: '-r=true' to remove spaces in suggested passwords [DEFAULT: with spaces]
-s=3: USE: '-s no.' where no. is the number of password suggestions offered [DEFAULT: 3]
-v=false: USE: '-v=true.' display the application version [DEFAULT: false]
-w=3: USE: '-w no.' where no. is the number of three letter words to use [DEFAULT: 3]
The command line options are explained in more detail below:
- -c : 'c' stands for 'case'. by default the suggested passwords are shown in lowercase only. Run with
-c=true
to get mixed case suggestions - -h : 'h' stands for 'help'. if run with the
-h
option a screen of help text will be displayed - -s : 's' stands for 'suggestion'. By default three passwords will be suggested. Change by adding a different number, so
-s 5
would provide five passwords. - -w : 'w' stands for 'word'. By default the suggested passwords consist of three x three letter words, so 9 characters in length. If you wanted a longer password length, you can chnage the number of words—so using
-w 4
would provide four words instead, giving a password length of 12 characters. - -q : 'q' stands for 'quiet'. This option only outputs ONE password (optionally at the length specified with -w) and no other text, so useful for using with command line pipes. Use with option
-r
to also remove spaces in the password - -r : 'v' stands for 'remove'. This options removes any spaces from the password suggestions that are output
- -v : 'v' stands for 'version'. This options only outputs the version of the application
Pre-compiled binaries are available from the Release page below. These are provide for Windows (32bit and 64bit), MacOSX (64bit), and Linux (64bit):
Assuming you already have Go installed and set-up on your computer—you
only need to download the single source file 'passgen.go
'. This can
then be built using the command below, assuming the passgen.go
file
is in you current directory:
go build ./passgen.go
There is also a Makefile
that I use on a computer running Linux to
cross compile the program for Linux (64 bit version), Windows (32 bit
and 64 bit versions) and Mac OS X (64 bit version). This can be done
(assuming you have your computer and Go set-up correctly) by also
downloading the 'Makefile', and then entering:
make all
The following enhancements are planned - see the source code also for any other TODO suggestions:
- TODO - maybe check for newer version and update if needed?
- TODO - add -c mixed case output mode
The program is licensed under the "New BSD License" or "BSD 3-Clause License". A copy of the license is available here.
- Latest version is kept on GitHub here: Wiremoons GitHub Pages
- The program is written in Go - more information here: Go
- The program was written by Simon Rowe, licensed under New BSD License