NAME

Data::Password::zxcvbn::AuthorTools - collection of tools to simplify building zxcvbn distributions

VERSION

version 1.0.0

DESCRIPTION

This distribution is only useful if you want to maintain Data::Password::zxcvbn or a distribution with language-specific (or domain-specific) data files (e.g. Data::Password::zxcvbn::French).

Tools included:

Dist::Zilla::MintingProfile::zxcvbn

this minting profile automates creating a new zxcvbn distribution

Data::Password::zxcvbn::AuthorTools::BuildRankedDictionaries

this module takes files containing ordered lists of words (from most common to least common) and produces Perl modules that can be used with Data::Password::zxcvbn::Match::Dictionary

Data::Password::zxcvbn::AuthorTools::BuildAdjacencyGraphs

this module takes files textual descriptions of keyboard layouts and produces Perl modules that can be used with Data::Password::zxcvbn::Match::Spatial

zxcvbn-build-data-leipzig

this script extracts word frequency data from the corpora maintained by Leipzig University, and produces text files that can be used by BuildRankedDictionaries; look at its source to see how to use it

zxcvbn-build-names-data-fb-leak

this script takes JSON files containing first/last names from a Facebook dump, and produces text files that can be used by BuildRankedDictionaries; look at its source to see how to use it

How to build a language-specific distribution

  • get the appropriate corpora for the language

  • dzil new -P zxcvbn Data::Password::zxcvbn::MyLang

  • git init in the generated directory

  • edit the generated dist.ini, fix all the FIXME in the generated files

  • run zxcvbn-build-data-leipzig and zxcvbn-build-names-data-fb-leak to generate data files

  • edit the files in maint/ to use those data files

  • tweak pod and comments

  • git commit &c

  • ship it

AUTHOR

Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by BroadBean UK, a CareerBuilder Company.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.