This module is not necessary for normal use of the ZxcvbnPlus module; instead, it contains the types necessary for examining the actual matches in the most-guessable sequence contained in ZxcvbnPlusResult.matchSequence.
MatchDetails type to specify the type and details of a specific match.
DictionaryMatch -- A match against common password, name, or English word dictionaries.
dictionaryDetails -- Details of the dictionary match, e.g. whether it was a reverse match or not.dictionary -- The dictionary source that was matched against, e.g. CommonPassword or EnglishWord.rank -- The frequency rank of the match, with 1 being the most common.matchedWord -- The word in the dictionary that was matched.KeyAdjacencyMatch -- A match against sequences on the keyboard, e.g. "asdfg".
layout -- The name specific keyboard layout that was matched, e.g. Qwerty or Dvorak.turns -- Number of directions that the sequence travels in, e.g. "zxcdert" has 3.shiftedKeys -- Number of characters that are the shifted version (e.g. 'A' instead of 'a').OrdinalSequenceMatch -- A match against repetitive increases in unicode code point, e.g. "abcdefg" or "aceg".
sequence -- The matched sequence, e.g. LowercaseLatin or Unicode.delta -- The offset betwen codepoints; may be positive or negative. For example, "zyxw" has delta of -1, and "aceg" has delta of 2.obviousStart -- Whether the matched sequence begins somewhere "obvious", e.g. "0" or "a".RepeatMatch -- A match against 2 or more repeats, e.g. "abcabcabc"
baseToken -- The base repeating unit, e.g. "abc" in "abcabcabc"baseGuesses -- The estimated number of guesses to "crack" the base token.baseMatchSequence -- The estimated most-guessable match sequence for the base token.repeatCount -- The number of times the base token is repeated, e.g. 3 in "ababab".DateMatch -- A match on an apparent numeric date.
year -- The year matched, e.g. 1954 for "1/1/1954".dateDetails -- The details of the found date, e.g. month and day, separator, whether it's only a recent year, etc.BruteforceMatch -- A segment of password that didn't match any other match and thus would have to be bruteforced.
DictionaryDetails specifies which kind of dictionary match a specific match is and any other relevant details (e.g. which substitutions were made for l33t matches).
Dictionary -- A standard dictionary match.ReverseDictionary -- A dictionary match where the token in the password was reversed, e.g. "drowssap" matches "password".L33tDictionary -- A dictionary match featuring common "l33t" substitutions, e.g. "p@ssw0rd" matches "password".sub -- A dictionary with keys of characters in the password and values of characters they were substituted with to make the match, e.g. Dict.fromList [ ( '@', 'a' ), ( '0', 'o' ) ) ] for "p@ssw0rd".The source for a dictionary match.
CommonPassword -- Matched against a list of the 30,000 most-common passwords.EnglishWord -- Matched a common English-language word.Name -- Matched a common (English-language) given name/surname.UserPattern -- Matched one of the strings provided to zxcvbnPlus (typically site-specific words and/or user information).The frequency list against which an English word was matched.
The type of name (e.g. surname, female given name, etc.) a common name is.
The specific details for a date match.
RecentYear -- A 4-digit year only, from 1900-present.FullDate -- A full date, specifying a month and day, as well as a possible separator character (e.g. '/').The specific keyboard layout a key adjacency match was made against.
The specific ordinal sequence of characters that was matched.
UppercaseLatin -- A sequence like "ABCDEF".LowercaseLatin -- A sequence like "zyxwv".Digits -- A sequence like "5678".Unicode -- Any other sequence, e.g. "ㄅㄆㄇㄈ".
A match for which estimated guesses have been calculated.
pattern-- The type of the match, e.g. a dictionary match versus a date match.token-- the portion of the password that triggered the match.i,j-- The start/end positions oftokenin the original password.guesses-- The estimated number of guesses to "crack" the match.