Passogva (pass-og-va)
Collected and repaired by Steven Hazel <sah@mosuki.com>

Passogva is a collection of FIPS-181 Automated Password Generator implementations. These programs generate random, pronounceable words, like these (reload for more):

vovkif (vov-kif)
dregpye (dreg-pye)
suatti (su-att-i)
radkriar (rad-kriar)
fenlihej (fen-li-hej)
yewfceoi (yewf-ce-oi)

These implementations are all based on the source code included in FIPS-181. That code was full of bugs, and I have fixed some of them. It appears to be working now, but all of this code is still terribly ugly. Don't read it right before lunch.

Download

Version 1.0
C: passogva.c
Perl: passogva.pm
Python: passogva.py
PHP: passogva.php

Crypt::RandPasswd:

The Perl, Python, and PHP versions are based on Crypt::RandPasswd version 0.02 by John D. Porter. That version sucks a lot, mainly because the original FIPS-181 code sucked a lot: a one-character typo on John's part causes it to get stuck in an infinite loop around 10% of the time. Other problems that exist in the original C code had more noticeable effects in the Perl translation. I've fixed a lot of bugs since then. John has been unresponsive, though, so Crypt::RandPasswd remains out of date.

Copyright and Licensing:

The Copyright status of these files is complicated. They are all very closely based on the text of a United States government publication, which I believe is in the public domain. John D. Porter is responsible for the translation into Perl, and he released that translation under Perl's Artistic License. The Python and PHP versions are in part translations of the Perl version. All versions contain bugfixes by me. The PHP version is based on a version I wrote while in the employ of ByteTaxi, Inc., but they have given it to me to release. I produced the Python version while contracted by Mo-Tsuki, LLC, and they have allowed me to release it here.

Python version Copyright © 2004 Mo-Tsuki, LLC.
C, Perl, and PHP versions Copyright © 2004 Steven Hazel.

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

The Perl version, passogva.pm, may additionally be redistributed and/or modified under the same terms as Perl itself.

Related Work:

Tom Van Vleck has pronounceable password generators in Java and C++, as well as some history on the subject.

APG is another FIPS-181-derived pronounceable password generator, written by Adel Mirzazhanov.