The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

mkpasswd.pl - example to generate new password with String::MkPasswd

SYNOPSIS

  mkpasswd.pl [-options]

  #!/bin/sh
  NEW_PASSWD=`mkpasswd.pl`

DESCRIPTION

This program generates a random password, allowing for some tuning of character distribution. The password is sent to standard output.

OPTIONS

-l # | --length=#

The total length of the password. The default is 9.

-d # | --digits=#

The minimum number of digits that will appear in the final password. The default is 2.

-c # | --lower=#

The minimum number of lower-case characters that will appear in the final password. The default is 2.

-C # | --upper=#

The minimum number of upper-case characters that will appear in the final password. The default is 2.

-s # | --special=#

The minimum number of non-alphanumeric characters that will appear in the final password. The default is 1.

-2 | --distribute

If specified, password characters will be distributed between the left- and right-hand sides of the keyboard. This makes it more difficult for an onlooker to see the password as it is typed.

--nodigits | --no-digits

Alias for --digits=0.

--nolower | --no-lower

Alias for --lower=0.

--noupper | --no-upper

Alias for --upper=0.

--nospecial | --no-special

Alias for --special=0.

BUGS

  • While not really a bug, the .pl extension has been added to avoid conflict with the program of the same name distributed with Expect.

TODO

  • For completeness, add user password setting functionality as found in Expect's mkpasswd(1) example.

SEE ALSO

http://expect.nist.gov/#examples, mkpasswd(1), String::MkPasswd

AKNOWLEDGEMENTS

Don Libes of the National Institute of Standards and Technology, who wrote the Expect example, mkpasswd(1).

AUTHOR

Chris Grau <cgrau@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2003-2004 by Chris Grau

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.