String::MkPasswd(3pm)

String::MkPasswd3pm

Random password generator

Usage

  use String::MkPasswd qw(mkpasswd);
  print mkpasswd();
  # for the masochisticly paranoid...
  print mkpasswd(
      -length     => 27,
      -minnum     => 5,
      -minlower   => 1,   # minlower is increased if necessary
      -minupper   => 5,
      -minspecial => 5,
      -distribute => 1,
  );

Abstract

This Perl library defines a single function, "mkpasswd()", to generate random passwords. The function is meant to be a simple way for developers and system administrators to easily generate a relatively secure password.

Overview

The exportable "mkpasswd()" function returns a single scalar: a random password. By default, this password is nine characters long with a random distribution of four lower-case characters, two upper-case characters, two digits, and one non-alphanumeric character. These parameters can be tuned by the user, as described in the "ARGUMENTS" section.

Arguments

The "mkpasswd()" function takes an optional hash of arguments.

-length

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

-minnum

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

-minlower

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

-minupper

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

-minspecial

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

-distribute

If set to a true value, 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. The default is false.

-noambiguous

If set to a true value, password characters will not include any that might be mistaken for others. This is particularly helpful if you're distributing a printed list of passwords to a group of people. The default is false.

-fatal

If set to a true value, "mkpasswd()" will Carp::croak() rather than return "undef" on error. The default is false.

If -minnum, -minlower, -minupper, and -minspecial do not add up to -length, -minlower will be increased to compensate. However, if -minnum, -minlower, -minupper, and -minspecial add up to more than -length, then "mkpasswd()" will return "undef". See the section entitled "EXCEPTION HANDLING" for how to change this behavior.

Exception handling

By default, "mkpasswd()" will return "undef" if it cannot generate a password. Some people are inclined to exception handling, so String::MkPasswd does its best to accommodate them. If the variable $String::MkPasswd::FATAL is set to a true value, "mkpasswd()" will Carp::croak() with an error instead of returning "undef".

Export

None by default. The "mkpasswd()" method is exportable.

Aknowledgements

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

Releases

10 releases since Debian 4.0 (Etch); the text changed 6 times.

  1. 4.0
  2. 5.0
  3. 6.0
  4. 7
  5. 8–10
  6. 11
  7. 12–13

-distribute since Debian 6.0 (Squeeze); -fatal since Debian 6.0 (Squeeze); -length since Debian 6.0 (Squeeze); -minlower since Debian 6.0 (Squeeze); -minnum since Debian 6.0 (Squeeze); -minspecial since Debian 6.0 (Squeeze); -minupper since Debian 6.0 (Squeeze); -noambiguous since Debian 8 (Jessie).

Author

Chris Grau <[email protected]>

From libstring-mkpasswd-perl 0.05-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.