genpass - Quickly and easily create secure passwords
genpass [-rlnsv] [long options...]
--configfile configuration file to read (YAML, JSON, INI, etc.)
-r --readable create readable passwords
-l --length password length
-n --number how many passwords to create
-s --special use special characters (clashes with readable opt)
-v --verify verify types of characters
--lowercase what lowercase characters to use
--uppercase what uppercase characters to use
--numerical what numerical characters to use
--specials what characters are considered special
--unreadable what characters are considered unreadable
--usage brief usage output
--help what you're currently reading
genpass creates passwords in a fast and comfortable maner. The idea is to
be able to do plenty without necessarily needing to.
The way genpass works is by compiling a list of known
characters by types (numerical, lowercase, uppercase, etc.) and a list of
unreadable characters - which are basically characters that can be confused
with each other (0, O, I, l, 1 and so on). It generates a random by possible
characters, excluding the non-readable ones, if any exist.
genpass allows you to pick which characters it will use to
create the passwords via the longer options for lowercase,
uppercase, numerical, specials and
Also, any boolean option (readable, special) can be negated using
"no", such as genpass --nospecial which negates genpass
genpass also supports configuration files, so you don't
have to remember all your favorite options and insert them each time. First
it tries to read a ".genpass.yaml" in your
home folder (works with Linux, BSD, MacOS, Windows and anything
File::HomeDir supports) and if that doesn't exist (or is simply unreadable),
it looks for a global Unix-style conf named
You will read below how you can specifically ask to read a
completely different file instead of the default ones mentioned above.
Read below for more options and examples.
- genpass can work with most configuration formats, such as YAML,
JSON, INI (Apache) and so on. You can configure any part of genpass
and ask genpass to read a configuration file as such:
genpass --configfile ~/.genpass.yaml
Or a global one as such:
genpass --configfile /etc/genpass.json
Default: YourHomeFolder/.genpass.yaml, then
- -r | --readable
- A flag to decide whether passwords should be readable. The purpose of
readability is to create passwords you can give to users or read to
someone - both of which aren't necessarily good practices, but commonly
Readable passwords do not contain the additional type of
special characters, which is something to consider. Sometimes it doesn't
matter as much (such as a Windows user on a local LAN machine that has
no critical data or access anywhere.
Since readable is on by default, you can negate this if
you want by using the noreadable option:
This will turn on the special and possibly unreadable
Please view unreadable below for more details.
- -l | --length
- The length of the password.
# create a 50 character long password
genpass --length 50
# create a 7 character long password
genpass -l 7
If your configuration requires a certain variety of characters
but you've asked for a shorter password (one which cannot contain that
variety), genpass will complain and try to explain what the
$ genpass -l 2
You wanted a longer password that the variety of characters you've selected.
You requested 3 types of characters but only have 2 length.
- -n | --number
- How many passwords to create.
# generate 30 passwords
genpass -n 30
- -s | --special
- Indicates whether to use special characters or not. This basically means
symbols such as period, exclamation mark, percentage sign, etc.
You can negate this flag by doing:
- -v | --verify
- Whether to verify that the variety of characters you requested is
Disabling this gains you speed if you create a rather large
number of passwords that have a rather large number of characters. Then
you don't need to worry as much about having that variety since
probability says you probably will.
You can negate this using:
Best to keep it on though.
- Which characters are considered lowercase?
- Which characters are considered uppercase?
- Which characters are considered numerical?
- Which characters are considered special ones?
- Which characters are considered unreadable?
This includes a short list of characters that are easily
confused and the above sequences are stripped of such characters.
# create a 10 character length password
genpass -l 10
# create 30 passwords using all possible characters
genpass -n 30 --noreadable
# create 5 new passwords of length of 30, long options
genpass --number 5 --length 30
Sawyer X <email@example.com>
This software is copyright (c) 2011 by Sawyer X.
This is free software; you can redistribute it and/or modify it
under the same terms as the Perl 5 programming language system itself.