genpass - Quickly and easily create secure passwords
genpass [-rlnsv] [long options...]
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 unreadable.
Also, any boolean option (readable, special) can be negated using "no", such as genpass --nospecial which negates genpass --special.
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 /etc/genpass.yaml.
- -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 used.
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 characters option.
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 problem is.
$ 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 included.
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 <firstname.lastname@example.org>
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.