Strong Password Generator in Python
I wanted a CLI-based strong password generator for Linux. mkpasswd
is nice,
but I wanted something more flexible. I didn’t like having to provide my own
character sequence. I wanted something with a built-in character sequence
generator with an easy way to control the likelihood of numbers and symbols. I
wanted something that could read in a character sequence from a file or standard
input. And I wanted something that not only had sensible default values, but was
easily configurable. It was one of those times where searching for such a tool
was a bigger hassle than writing my own. So I opened up vim and got to work. The
result is a Python-based password generator called mkstrongpw
.
mkstrongpw
can generate a character sequence based on four character
categories: lowercase letters, uppercase letters, numerical digits, and
non-alphanumeric symbols. By default, the likelihood (or odds) of each character
type is as follows: lowercase: 5/10; uppercase: 2/10; digits: 2/10; symbols:
1/10. These values can be easily changed via command line options. A single,
non-option argument can be passed, specifying a filename to be read in as the
character sequence. If this argument is a single hyphen (-), standard input is
used. Newlines and whitespace are stripped from the beginning and end of each
line of the input file.
By default, mkstrongpw
uses its built-in sequence generator to produce 10
passwords, 8 characters in length. Command line options can be used to modify
these values. Take a look at the following examples:
Default operation (no arguments):
Generate 1 password, 10 characters in length:
Generate a character sequence using `dd` and `uuencode`:
That’s a broad overview of mkstrongpw
. Use the --help
option for more details.
Get it
- Latest version (github)
- Download mkstrongpw 1.0 (.tar.gz) (md5sum: 34725c0509e0d0d9c5ef7441c8b5088c)
- View source