Much of the programming work I do is not really suited to sharing as it’s not generic enough to be usable by others, but from time to time I do produce some code that I think might be of benefit to others, and when that happens I like to release it under an open-source license here on this page (page still under construction).
xkpasswd.pm– a Perl Module for Generating Secure Memorable Passwords
Note - updated to version 0.2.1 on 7 August 2012. (Release notes)
Note - updated to version 0.2 on 29 July 2012. (Release notes)
xkpasswd.pmis the library behind the online password generator www.xkpasswd.net. That site will give you a good understanding of the libraries capabilities.
xkpasswd.pmmodule was inspired by Steve Gibson’s Password Haystacks Project, and this XKCD Web Comic. The module uses dictionary words as the starting point for generating a password, but then allows them to be manipulated in a number of ways to add more or less complexity as desired. A separator can be chosen to connect the words, an arbitrary number of random digits can be added before and after the words, and an arbitrary amount of padding can be added before and after the words and numbers using any character. As well as this the library allows some transformations to the words, including capitalisation changes, and 133+ substitutions.
The module does not import any other Perl modules, and can work with any dictionary file formatted to have one word per line (lines starting with
#will be ignored). The Module is released under the FreeBSD License, so it is entirely free to use, for both commercial and non-commercial uses, as long as my copyright notices are left in place. I would ask for a credit and a link back to www.bartb.ie/xkpasswd though.
The download package below contains the module (
XKpasswd.pm), as well as a sample dictionary file (
sample-dict.txt), and a Perl script with an example of how the module should be used (