NAME
App::Genpass - Quickly create secure passwords
VERSION
Version 0.05
SYNOPSIS
use App::Genpass;
my $genpass = App::Genpass->new();
print $genpass->generate, "\n";
$genpass = App::Genpass->new( readable => 0, length => 20 );
print "$_\n" for $genpass->generate(10);
DESCRIPTION
If you've ever needed to create 10 (or even 10,000) passwords on the fly
with varying preferences (lowercase, uppercase, no confusing characters,
special characters, minimum length, etc.), you know it can become a
pretty pesky task.
This script makes it possible to create flexible and secure passwords,
quickly and easily.
use App::Genpass;
my $genpass = App::Genpass->new();
my $single_password = $genpass->generate(1); # returns scalar
my @single_password = $genpass->generate(1); # returns array
my @multiple_passwords = $genpass->generate(10); # returns array again
my $multiple_passwords = $genpass->generate(10); # returns arrayref
SUBROUTINES/METHODS
new
Creates a new instance. It gets a lot of options.
flags
These are boolean flags which change the way App::Genpass works.
readable
Use only readable characters, excluding confusing characters: "o",
"O", "0", "l", "1", "I".
You can overwrite what characters are considered unreadable under
"character attributes" below.
Default: on.
special
Include special characters: "!", "@", "#", "$", "%", "^", "&", "*",
"(", ")"
Default: on.
verify
Verify that every type of character wanted (lowercase, uppercase,
numerical, specials, etc.) are present in the password. This makes
it just a tad slower, but it guarantees the result. Best keep it on.
Default: on.
attributes
length
How long will the passwords be.
Default: 10.
character attributes
These are the attributes that control the types of characters. One can
change which lowercase characters will be used or whether they will be
used at all, for example.
# only a,b,c,d,e,g will be consdered lowercase and no uppercase at all
my $gp = App::Genpass->new( lowercase => [ 'a' .. 'g' ], uppercase => [] );
lowercase
All lowercase characters, excluding those that are considered
unreadable if the readable flag (described above) is turned on.
Default: [ 'a' .. 'z' ] (not including excluded chars).
uppercase
All uppercase characters, excluding those that are considered
unreadable if the readable flag (described above) is turned on.
Default: [ 'A' .. 'Z' ] (not including excluded chars).
numerical
All numerical characters, excluding those that are considered
unreadable if the readable flag (described above) is turned on.
Default: [ '0' .. '9' ] (not including excluded chars).
unreadable
All characters which are considered (to me) unreadable. You can
change this to what you consider unreadable characters. For example:
my $gp = App::Genpass->new( unreadable => [ qw(jlvV) ] );
After all the characters are set, unreadable characters will be
removed from all sets.
Thus, unreadable characters override all other sets. You can make
unreadable characters not count by using the readable =>
0
option, described by the *readable* flag above.
specials
All special characters.
Default: [ '!', '@', '#', '$', '%', '^', '&', '*', '(', ')' ].
(not including excluded chars)
generate
This method generates the password or passwords.
It accepts only one parameter, which is how many passwords to generate.
$gp = App::Genpass->new();
my @passwords = $gp->generate(300); # 300 passwords to go
This method tries to be tricky and DWIM (or rather, DWYM). That is, if
you request it to generate only one password and use a scalar (my
$p = $gp->generate(1)
), it will return a single password.
However, if you try to generate multiple passwords and use a scalar
(my $p = $gp->generate(30)
), it will return an arrayref for
the passwords.
Generating passwords with arrays (my @p =
$gp->generate(...)
) will always return an array of the passwords,
even if it's a single password.
AUTHOR
Sawyer X, ""
BUGS AND LIMITATIONS
Please report any bugs or feature requests to "bug-app-genpass at
rt.cpan.org", or through the web interface at
. I will be
notified, and then you'll automatically be notified of progress on your
bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc App::Genpass
You can also look for information at:
* Github: App::Genpass repository
* RT: CPAN's request tracker
* AnnoCPAN: Annotated CPAN documentation
* CPAN Ratings
* Search CPAN
LICENSE AND COPYRIGHT
Copyright 2009 Sawyer X.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.