Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PassGen(3)	      User Contributed Perl Documentation	    PassGen(3)

       Crypt::PassGen -	Generate a random password that	looks like a real word

	 use Crypt::PassGen qw/	passgen	/;

	 @passwords = passgen( NWORDS => 10, NLETT => 8	);

       This module provides a single command for generating random password
       that is close enough to a real word that	it is easy to remember.	 It
       does this by using the frequency	of letter combinations in a language
       (the frequency table is generated during	installation although multiple
       tables can be generated and used	for different languages). The
       frequency table contains	the probability	that a word will start with a
       specific	letter or 2 letter combination and then	the frequency of 3
       letter combinations.

       This module should not be used for high security	applications (such as
       user accounts) since it returns passwords that are not mixed case, have
       no punctuation and no letters. This word	can be used as a basis for a
       more secure password.

       The language of the password depends on the language used to construct
       the frequency table.

       The following functions are provided:

	   This	function is used to create a frequency table to	be used	later
	   by "passgen". This routine is run during the	initial	install	of the
	   module so that at least one frequency table is available.

	   This	function reads a file and for each word	that is	found
	   (ignoring any with non-alphabet characters) notes the starting
	   letter, the second letter and each combination of 3 letters.	Once
	   the file is read the	resultant arrays then contain the relative
	   occurence of	each letter combination. The frequency table will vary
	   depending on	the language of	the input file.

	     ingest( DICT   => '/usr/dict/words',
		     FILE   => 'wordfreq.dat',
		     APPEND => 0)

	   The input hash can contain keys "DICT", "FILE" and "APPEND" with
	   the above defaults. All arguments are optional. If "APPEND" is true
	   the frequency table from the	input dictionary will be appended to
	   an existing table (if it exists).

	   Returns 1 if	successful and 0 otherwise. On error, the reason is
	   stored in $Crypt::PassGen::ERRSTR.

	   A default frequency file is provided	for "passgen" as part of the
	   installation.  This routine is only required	to either extend or
	   replace the default value.

	   Generate a password.

	     @words = passgen( %options	);

	   Argument is a hash with the following keys:

	    FILE   The filename	containing the frequency information. Must
		   have	been written using C<ingest>.
	    NLETT  Number of letters to	use for	the generated password.
		   Must	be at least 5
	    NWORDS Number of passwords to generate

	   An array of passwords is returned. An empty list is returned	if an
	   error occurs	(and $Crypt::PassGen::ERRSTR is	set to the reason).

       All routines in this module store errors	in the ERRSTR variable.	This
       variable	can be accessed	if the routines	return an error	state and
       contains	the reason for the error.

	 @words	= passgen( NLETT => 2 )
	   or die "Error message: $Crypt::PassGen::ERRSTR";

       Tim Jenness <> Copyright (C) 2000-2012 T. Jenness. All
       Rights Reserved.	 This program is free software;	you can	redistribute
       it and/or modify	it under the same terms	as Perl	itself.

       Based on	the PASSGEN program written by Mike Bartman of SAR, Inc	as
       part of the SPAN	security toolkit.

perl v5.32.1			  2012-09-21			    PassGen(3)


Want to link to this manual page? Use this URL:

home | help