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

FreeBSD Manual Pages


home | help
APGD(8)				  User Manual			       APGD(8)

       apgd - server that generates several random passwords

       apgd  [-a  algorithm]  [-M  mode] [-E char_string] [-n num_of_pass] [-m
       min_pass_len] [-x max_pass_len]	[-r  dictfile]	[-b  filter_file]  [-p
       min_substr_len] [-k] [-t] [-l]

       apgd program is a server	that supports Password Generation Protocol de-
       scribed in RFC972.  It  uses  several  password	generation  algorithms
       (currently two) and a built-in pseudo random number generator.

       apgd  is	 normally  invoked by the Internet superserver (see inetd (8))
       for requests to connect to the pwdgen port (pwdgen port is 129  accord-
       ing  to	RFC1700	) as indicated by the /etc/services file (see services

       Default algorithm is pronounceable password  generation	algorithm  de-
       signed  by  Morrie Gasser and described in "A Random Word Generator For
       Pronounceable Passwords"	National Technical Information Service	(NTIS)
       AD-A-017676.  The original paper	is very	old and	had never been put on-
       line, so	I have to use NIST implementation described in FIPS-181.

       Another algorithm is simple random character generation algorithm,  but
       it  uses	 four  user-defined symbol sets	to produce random password. It
       means that user can choose type of symbols that should appear in	 pass-
       word.  Symbol  sets are:	numeric	symbol set (0,...,9) , capital letters
       symbol set (A,...,Z) , small letters symbol set (a,...,z)  and  special
       symbols symbol set (#,@,!,...).

       Built-in	 pseudo	 random	number generator is an implementation of algo-
       rithm described in Appendix C of	ANSI X9.17 or RFC1750  with  exception
       that  it	 uses CAST or SHA-1 instead of Triple DES.  It uses local time
       with precision of microseconds (see  gettimeofday(2))  and  /dev/random
       (if available) to produce initial random	seed.

       apgd  also  have	 the ability to	check generated	password quality using
       dictionary. You can use this ability if you specify command-line	option
       -r dictfile or -b filtername where dictfile is dictionary file name and
       filtername is the name of Bloom filter file. In that dictionary you may
       place  words  (one  per line) that should not appear as generated pass-
       words. For example: user	names common words, etc. You even can use  one
       of the dictionaries that	come with dictionary password crackers.	 Bloom
       filter file should be created with apgbfm(1) utility  included  in  apg
       distribution.  In  future releases I plan to implement some other tech-
       niques to check passwords just to make life easier.

       apgd has	the ability log	user password generation activity and internal
       debug information. It does this using
       facility	= daemon
	      priority = info for user password	generation activity logging
	      priority = debug for internal debug information
       See  the	syslogd(8) and syslog.conf(5) man pages	for information	on how
       to configure your syslog	daemon.

   Password generation modes options
       -a algorithm
	      use algorithm for	password generation.
	      0	- (default) pronounceable password generation
	      1	- random character password generation

       -n num_of_pass
	      generate num_of_pass number of passwords.	Default	is 6.

       -m min_pass_len
	      generate	password  with	minimum	  length   min_pass_len.    If
	      min_pass_len  >  max_pass_len  then max_pass_len = min_pass_len.
	      Default minimum password length is 8.

       -x max_pass_len
	      generate	password   with	  maximum   length   max_pass_len   If
	      min_pass_len  >  max_pass_len  then max_pass_len = min_pass_len.
	      Default maximum password length is 10.

       -M mode
	      Use symbolsets specified	with  mode  for	 password  generation.
	      mode is a	text string consisting of characters S,	s, N, n, C, c,
	      L, l. Where:

	      S	     generator must use	special	symbol set for every generated

	      s	     generator should use special symbol set for password gen-

	      N	     generator must use	numeral	symbol set for every generated

	      n	     generator should use numeral symbol set for password gen-

	      C	     generator must use	capital	symbol set for every generated

	      c	     generator should use capital symbol set for password gen-

	      L	     generator must use	small letters  symbol  set  for	 every
		     generated password	(always	present	if pronounceable pass-
		     word generation algorithm is used).

	      l	     generator should use small	letters	symbol set  for	 pass-
		     word generation.

	      R,r    not  supported  any  more.	 Use -E	char_string option in-
	      mode can not be more than	4 characters in	length.

	      Usage of L, S, N,	C will slow down password generation process.

	      -M sncl or -M SNCL or -M Cn

       -E char_string
	      exclude  characters  in  char_string  from  password  generation
	      process  (in  pronounceable password generation mode you can not
	      exclude small letters). To include special symbols that  can  be
	      recognized  by  shell (apostrophe, quotes, dollar	sign, etc.) in
	      char_string use the backslashed versions.


	      Command apgd -a 1	-M n -n	3 -m 8 -e 23456789 will	generate a set
	      of passwords that	will look like this

	      Command  apgd -a 1 -M nc -n 3 -m 26 -e GHIJKLMNOPQRSTUVWXYZ will
	      generate a set of	passwords that will look like this

   Password quality control options
       -k     check every generated password using cracklib. To	use this abil-
	      ity you must enable cracklib support during programm building.

       -r dictfile
	      check generated passwords	for their appearance in	dictfile

       -b filter_file
	      check  generated	passwords for their appearance in filter_file.
	      filter_file should be created with apgbfm(1) utility.

       -p min_substr_len
	      this option tells	apg(1) to check	every substring	of the	gener-
	      ated password for	appearance in filter_file. If any of such sub-
	      strings would be found in	the filter_file	then  generated	 pass-
	      word  would  be  rejected	 and apg(1) will generate another one.
	      min_substr_len is	specifies minimum substring length  to	check.
	      This option is active only if -b option is defined.

   Password output options
       -l     spell  generated	passwords. Useful when you want	to read	gener-
	      ated password by telephone.
	      WARNING: Think twice before read your password by	phone.

       -t     print pronunciation for generated	pronounceable password

       apgd -a 0 -M sncl -n 6 -x 10 -m 8 (new style)

       On successful completion	of its task, apgd will complete	with exit code
       0.  An exit code	of -1 indicates	an error occurred.  Textual errors are
       written to the syslogd (8).

       All textual info	is written to the syslogd(8).


       None.  If you've	found one, please send bug description to the author.

       apg(1), apgbfm(1)

       Adel I. Mirzazhanov, <>
       Project home page:

Automated Password Generator	  2003 Aug 4			       APGD(8)


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

home | help