Skip to content

Releases: bbusschots/hsxkpasswd


11 Aug 20:39
Choose a tag to compare

Fixed bugs affecting Perl versions greater than 5.20.


10 Aug 23:47
Choose a tag to compare

The first stable release of the re-named module.

No changes since beta 4.

Crypt-HSXKPasswd-v3.4.1 BETA 4

19 Jul 00:13
Choose a tag to compare

Shortened some existing command line options:

  • --dictionary-package is now --dict-pkg
  • --rng-package is now --rng-pkg

Added the --dict-file option to allow a dictionary file be specified for use as the word source.

Updated the -d option so it is now an alias for --dict-file.

Added --dict-pkg-args and --rng-pkg-args options to allow arguments be passed to the constructors for the packages specified via --dict-pkg and --rng-pkg. Both options expect a JSON string representing an array.

Re-factored the hsxkpasswdrc file format to support dictionary files and package options.

Updated the documentation to reflect these changes.

Crypt-HSXKPasswd-v3.3.1 BETA 3

12 Jul 23:11
Choose a tag to compare

This is the third, and hopefully final, BETA release of the re-named Crypt::HSXKPasswd (was

This release contains just one bug fix:

  1. There was a subtle error in how the entropy was calculated for the worst-case scenario (where attackers know both the configuration and word source used). Unfortunately the bug caused the module to overestimate the entropy. Because if this, some presets had to be altered after the bug was fixed to keep them below the entropy warning thresholds. This proved impossible for the WEB16 preset, so it has now issues a warning in the same way the NTLM preset does.

This release contains a number of enhancements to the core module:

  1. Control over entropy warnings has been greatly improved. Previously warnings were controlled by specifying which warnings to suppress, this is inverse to how most humans think, and hence very confusing. The logic has now been reversed, and the module config variable re-named to reflect the new logic.
  2. The ALTERNATE case transform now randomises the case of the first word, and then alternates from there. This adds a little more entropy, and makes more sense than having it always be the same IMO.

This release contains significant updates to the hsxkpasswd terminal command:

  1. Support for hsxkpasswdrc files has been added. These config files allow users of the terminal command store custom presets, and set other default values. the --rcfile option can be used to specify the path to a specific rc file, but by default ~/.hsxkpasswdrc is used. The --test-rcfile option can be used to help debug rc files.
  2. The -w and -warn options were added to allow control of the entropy warnings when using the terminal command

There are no more outstanding features targeted for the first stable release of the renamed module.

Crypt-HSXKPasswd-v3.2.1 BETA 2

07 Jun 20:39
Choose a tag to compare

The second BETA release of the re-named Crypt::HSXKPasswd (was

This release contains some bug fixes, as well as some feature changes:

  1. all data validation now done using a custom Type::Library type library of Type::Tiny types. With the help of @NosillaCast, many of the error messages have also been re-worded to be more human-friendly.
  2. a new helper class has been created to remove all circular dependencies - they were not breaking the code, but they were making my IDE cranky, and they just didn't smell right.
  3. a command-line interface (hsxkpasswd) has been added
  4. the test suite has been greatly improved, which should make it easier to spot bugs before code releases going forward
  5. the documentation got quite a bit of TLC

Apart from fixing any bugs this beta release highlights, all the remains to be done for the first stable release is to go through the documentation with a fine-tooth-comb to remove complex sentences, and to unify phraseology so there is better consistency.

Crypt-HSXKPasswd-v3.1.1 BETA 1

19 May 21:30
Choose a tag to compare

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 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.

Version 2.1.1

10 Nov 00:55
Choose a tag to compare

The first non-beta release. Mostly the same as the previous beta, but with a few bugs fixed, and a few small additions. The additions were added to address shortcomings that came to light during the recent re-development of

Version 2.1.1-beta2

13 Aug 22:19
Choose a tag to compare

A very minor change since the first beta, just some bug fixes to the validation code.

This version is fully functional, and appears stable, but there may still be some bugs that need to be knocked out.

Version 2.1.1-beta1

03 Aug 21:45
Choose a tag to compare
Version 2.1.1-beta1 Pre-release

The first public release of version two of the XKPasswd module.

This version is fully functional, and appears stable, but there may still be some bugs that need to be knocked out.