A password generator for strong, low-complexity passwords
make-lc-password: A Linux shell (bash) script that suggests random, verifiably strong, easy-to-memorize passwords.
Password example:
- cleave-cricks-suntan-loafed
- Entropy is approx. 50 sh (bits) -; depends on script presets and your system settings
Key points:
- Suggests multi-word passwords, so-called low-complexity passwords.
- Low-complexity passwords consist only of words, all in lowercase characters. (Lowercase characters can be typed on virtually any keyboard.)
- A low-complexity password is easy to memorize, in contrast to passwords that demand uppercase chars, digits, and special characters.
- Low-complexity passwords can be mathematically shown to be strong, even in the face of very skeptic assumptions.
- The passwords consist of 4 words (default) of fixed length 6 (default). The word separator is '-' (default). The defaults can be overridden.
- The source of the words is the Linux system dictionary (about 100,000 words).
- The tool can give the entropy of the password scheme (calculated in a conservative way).
- It can also give the entropy of the dictionary the password scheme is based on (calculated in a conservative way).
- Its defaults can be shown via an option and can be modified with command line options and parameters.
- Advanced features:
- Can write a custom dictionary based on the system dictionary or another dictionary.
- Filtering the system dictionary can be performed with advanced regular expressions. (You can then examine and edit the custom dictionary for later use.)
- Use your custom dictionary for password suggestions.
- Check each created password suggestion against a system or custom crack dictionary. (The password is considered cracked if it matches any whole line in the crack dictionary.)
- You can set a minimum intermediate (or custom) dictionary size; and let the tool warn you if the dictionary size falls below that value.
- Supports a documented list of exit codes for integration in a tool chain.
- Miscellaneous:
- Supports short (e.g., -h) and long (e.g., --help) options.
- Shows a list of example calls (use the -p or --examples options).
- The tool is open source software (license: GPL 3 or later, https://gnu.org/licenses/gpl.html).
- Has been developed and tested on Ubuntu 22.04.
Download: Zip archive | Script | Cryptographic signature | Public key | Folder
Preparation:
- Unpack the ZIP archive (optional): unzip make-lc-passwd.zip
- Check the script's authenticity: gpg --verify --keyring ./make-lc-passwd.pubkey.asc make-lc-passwd.sig.asc make-lc-passwd
(Expected output: Good signature from "Ulrich Messerle (Code Signing) <passwd-gen@pinkneutrino.com>")
- Make the file executable: chmod ug+x make-lc-passwd
Usage examples:
./make-lc-passwd
purges-cities-leafed-nowise
./make-lc-passwd --numpasswords 3 --linenumbers
1: occurs-shoots-airier-offing
2: ironic-filets-forgot-fuller
3: solids-tenpin-chilly-reflex
./make-lc-passwd --output lc-passwd-suggestion.txt
cat lc-passwd-suggestion.txt
fizzed-awaked-cotton-goblet
./make-lc-passwd --entropy
Password suggestion:
dreary-orchid-police-hamlet
Entropy information:
System dictionary : 104334 words
Custom dict. : 7352 words (7.0%)
Custom dict. entropy: 12.89 sh ('bits')
Password entropy : 50.56 sh ('bits')
./make-lc-passwd --help
Usage: make-lc-passwd [OPTION [PARAMETER]] [...]
...
Support:
For eMail support, see the eMail address given in the script source.