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>


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