Data::...rInput(3pm)
π NAME π
Data::Password::zxcvbn::Match::UserInput β the match class that catches words matching other user-supplied info, bestie. It's a 3pm page from the User Contributed Perl Documentation, so you already know it's real.
β¨ VERSION β¨
version 1.1.3 β yes, we're on that one, keep up π«Ά
πΈ DESCRIPTION πΈ
okay so picture this: this class is all about one specific guess β that some little substring of a password can totally be guessed just from other stuff you know about the user. Their account name, their real name, their location, &c. Basically the receipts a cracker would already have lying around. π
It's a subclass of Data::Password::zxcvbn::Match::Dictionary, so it inherits all the dictionary energy. iykyk.
π METHODS π
π make
my @matches = @{ Data::Password::zxcvbn::Match::UserInput->make(
$password,
{
user_input => \%user_input,
# this is the default
l33t_table => \%Data::Password::zxcvbn::Match::Dictionary::l33t_table,
},
) };
So the %user_input hash should be a simple lil hash that maps field names β strings. That's it, that's the whole vibe. It then gets converted into a set of dictionaries β one per key β full of words extracted from those strings. Watch this glow up:
{ name => 'Some One', address => '123 Place Street' }
becomes:
{ name => { Some => 1, One => 1 },
address => { 123 => 1, Place => 1, Street => 1 } }
Every single word gets rank 1, because from a cracker's point of view these are obvious guesses. Like, not even trying. π
The rest of the logic is the same as for Dictionary β go read that one, it's giving the same, no cap.
π¦ feedback_warning
The warnings here are very similar to the ones for Dictionary, except β and this is the icon behaviour β they explicitly name the field. The warnings look like:
['The value of the [_1] field is easy to guess','address']
so your localisation library can translate the warning and the field name separately. Periodt. π
π AUTHOR π
Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2022 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.
fr fr, that's the whole page π and for the cute sign-off: this was served up by perl v5.40.1 on 2025-10-17, and the page itself is called Data::...rInput(3pm) β slay, go write a strong password, bestie πβ¨
π¦ where this page comes from
- ubuntu resolute: libdata-password-zxcvbn-perl 1.1.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libdata-password-zxcvbn-perl 1.1.3-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms