Skip to content

Crypt-HSXKPasswd-v3.1.1 BETA 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@bbusschots bbusschots released this 19 May 21:30
· 24 commits to CPAN-Prep since this release

The first beta release of the re-designed and re-named module. With this release the Perl module has been re-named from simply XKPasswd, to the properly name-spaced Crypt::HSXKPasswd.

The reason for the change of name from XKPasswd to HSXKPasswd is to better reflect the fact that this module combines ideas from both the famous XKCD password comic, and Steve Gibson's Password Haystacks. The old name implied the module only implemented traditional XKCD-style passwords, which under-sells the module's capabilities.

This version has been packaged for future distribution on CPAN, and contains many new features, most notably:

  • Both the functional interface (hsxkpasswd()) and the constructor have been changed to using named parameters to make it easier to instantiate objects with more customisations.
  • The config can now be passed as a JSON string (the format produced in the Save/Load tab on the www.xkpasswd.net website), making it easy to tweak your config in the web GUI, then use it in your scripts.
  • The module is now fully unicode aware, so it can finally handle accented letters, and hence, languages other than English!
  • The module now ships with English, German, French, Spanish, Italian and Portuguese dictionaries built in.
  • The dictionary interface has been completely re-designed, allowing for more flexible word sources in the future - simply extend Crypt::HSXKPasswd::Dictionary and implement the function word_list().
  • Random number generation (RNG) has been completely re-designed, and there is now built-in support for better sources of randomness than rand(), including support for /dev/urandom, Math::Random::Secure, and Data::Entropy::Algorythms. By default, the best RNG available on the system will be used, and a warning will be issued if the module has to fall back to using rand().
  • Custom RNGs can now be created by extending Crypt::HSXKPasswd::RNG and implementing the function random_numbers()

Installation instructions can be found in the INSTALL file, and detailed documentation in the README file, both included in the release.