Scroll to navigation

Data::Password::zxcvbn::Match::Spatial(3pm) User Contributed Perl Documentation Data::Password::zxcvbn::Match::Spatial(3pm)

NAME

Data::Password::zxcvbn::Match::Spatial - match class for sequences of nearby keys

VERSION

version 1.0.4

DESCRIPTION

This class represents the guess that a certain substring of a password can be obtained by moving a finger in a continuous line on a keyboard.

ATTRIBUTES

"graph_name"

The name of the keyboard / adjacency graph used for this match

"graph_meta"

Hashref, spatial information about the graph:

  • "starting_positions"

    the number of keys in the keyboard, or starting nodes in the graph

  • "average_degree"

    the average number of neighbouring keys, or average out-degree of the graph

"shifted_count"

How many of the keys need to be "shifted" to produce the token

"turns"

How many times the finger must have changed direction to produce the token

METHODS

"estimate_guesses"

The number of guesses grows super-linearly with the length of the pattern, the number of "turns", and the amount of shifted keys.

"make"

  my @matches = @{ Data::Password::zxcvbn::Match::Spatial->make(
    $password,
    { # this is the default
      graphs => \%Data::Password::zxcvbn::AdjacencyGraph::graphs,
    },
  ) };

Scans the $password for substrings that can be produced by typing on the keyboards described by the "graphs".

The data structure needed for "graphs" is a bit complicated; look at the "build-keyboard-adjacency-graphs" script in the distribution's repository <https://bitbucket.org/broadbean/p5-data-password-zxcvbn/src/master/maint/build-keyboard-adjacency-graphs>.

"feedback_warning"

"feedback_suggestions"

This class suggests that short keyboard patterns are easy to guess, and to use longer and less straight ones.

"fields_for_json"

The JSON serialisation for matches of this class will contain "token i j guesses guesses_log10 graph_name shifted_count turns".

AUTHOR

Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 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.

2020-07-13 perl v5.30.3