App-Genpass

 view release on metacpan or  search on metacpan

bin/genpass  view on Meta::CPAN

#!perl

package
    genpass;
# ABSTRACT: Quickly and easily create secure passwords

use strict;
use warnings;

use App::Genpass;

my $app       = App::Genpass->new_with_options;
my @passwords = $app->generate();

print map { "$_\n" } @passwords;

exit 0;

__END__

=pod

=encoding UTF-8

=head1 NAME

genpass - Quickly and easily create secure passwords

=head1 VERSION

version 2.401

=head1 SYNOPSIS

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

=head1 DESCRIPTION

B<genpass> creates passwords in a fast and comfortable maner. The idea is to be
able to do plenty without necessarily needing to.

The way B<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.

B<genpass> allows you to pick which characters it will use to create the
passwords via the longer options for I<lowercase>, I<uppercase>,
I<numerical>, I<specials> and I<unreadable>.

Also, any boolean option (readable, special) can be negated using "no", such as
I<genpass --nospecial> which negates I<genpass --special>.

B<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
C<.genpass.yaml> in your home folder (works with Linux, BSD, MacOS, Windows and
anything L<File::HomeDir> supports) and if that doesn't exist (or is simply
unreadable), it looks for a global Unix-style conf named C</etc/genpass.yaml>.

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.

=head1 OPTIONS

=over 4

=item B<--configfile>

B<genpass> can work with most configuration formats, such as YAML, JSON, INI
(Apache) and so on. You can configure any part of B<genpass> and ask B<genpass>
to read a configuration file as such:

    genpass --configfile ~/.genpass.yaml

Or a global one as such:

    genpass --configfile /etc/genpass.json

Default: I<YourHomeFolder/.genpass.yaml>, then I</etc/genpass.yaml>.

=item B<-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.

bin/genpass  view on Meta::CPAN

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.

    genpass --readable

Since I<readable> is on by default, you can negate this if you want by using
the I<noreadable> option:

    genpass --noreadable

This will turn on the special and possibly unreadable characters option.

Please view I<unreadable> below for more details.

Default: on.

=item B<-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), B<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.

Default: 10.

=item B<-n | --number>

How many passwords to create.

    # generate 30 passwords
    genpass -n 30

Default: 1.

=item B<-s | --special>

Indicates whether to use special characters or not. This basically means symbols
such as period, exclamation mark, percentage sign, etc.

    genpass --special

You can negate this flag by doing:

    genpass --nospecial

Default: no.

=item B<-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:

    genpass --noverify

Best to keep it on though.

Default: yes.

=item B<--lowercase>

Which characters are considered lowercase?

=item B<--uppercase>

Which characters are considered uppercase?

=item B<--numerical>

Which characters are considered numerical?

=item B<--specials>

Which characters are considered special ones?

=item B<--unreadable>

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.

=back

=head1 EXAMPLES

    # 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

=head1 AUTHOR

Sawyer X <xsawyerx@cpan.org>

=head1 COPYRIGHT AND LICENSE

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.

=cut



( run in 1.527 second using v1.01-cache-2.11-cpan-39bf76dae61 )