Constructor
new Statistics(config, dict)
 Description:
Constructor
 Source:
Parameters:
Name  Type  Description 

config 
object  the current config 
dict 
Dictionary  the current dictionary 
Methods
__randomNumbersRequired() → {number}
 Description:
Calculate the number of random numbers needed to generate a single password with a given config.
TODO do we really need this function?
 Source:
Returns:
the number of random numbers required
 Type
 number
calculateStats() → {object}
 Description:
Return statistics about the instance
Returns: A dictionary of statistics indexed by the following keys:
 dictionary_source  the source of the word list
 dictionary_words_total  the total number of words loaded from the dictionary file
 dictionary_words_filtered  the number of words loaded from the dictionary file that meet the length criteria set in the loaded config
 dictionary_words_percent_available  the percentage of the total dictionary that is available for use with the loaded config
 dictionary_filter_length_min  the minimum length world permitted by the filter
 dictionary_filter_length_max  the maximum length world permitted by the filter
 dictionary_contains_accents  whether or not the filtered list contains accented letters
 password_entropy_blind_min  the entropy of the shortest password this config can generate from the point of view of a bruteforce attacker in bits
 password_entropy_blind_max  the entropy of the longest password this config can generate from the point of view of a bruteforce attacker in bits
 password_entropy_blind  the entropy of the average length of password generated by this configuration from the point of view of a bruteforce attacker in bits
 password_entropy_seen  the true entropy of passwords generated by this instance assuming the dictionary and config are known to the attacker in bits
 password_length_min  the minimum length of passwords generated with this instance's config
 password_length_max  the maximum length of passwords generated with this instance's config
 password_permutations_blind_min  the number of permutations a bruteforce attacker would have to try to be sure of success on the shortest possible passwords generated by this instance as a Math::BigInt object
 password_permutations_blind_max  the number of permutations a bruteforce attacker would have to try to be sure of success on the longest possible passwords generated by this instance as a Math::BigInt object
 password_permutations_blind  the number of permutations a bruteforce attacker would have to try to be sure of success on the average length password generated by this instance as a Math::BigInt object
 password_permutations_seen  the number of permutations an attacker with a copy of the dictionary and config would need to try to be sure of cracking a password generated by this instance as a Math::BigInt object
 password_random_numbers_required  the number of random numbers needed to generate a single password using the loaded config
 passwords_generated  the number of passwords this instance has generated
 randomnumbers_cached  the number of random numbers currently cached within the instance
 randomnumbers_cache_increment  the number of random numbers generated at once to replenish the cache when it's empty
 randomnumbers_source  the name of the class used to generate random numbers
 Source:
Throws:
Error on exception
Returns:
stats  the statistics
 Type
 object
configStats(suppressWarnings) → {object}
 Description:
Calculate statistics for a given configuration
Returns: A statistics object indexed by the following keys:
 minLength: the minimum possible length of a password generated by the given config
 maxLength: the maximum possible length of a password generated by the given config
 randomNumbersRequired: the number of random numbers needed to generate a single password using the given config Arguments: OPTIONAL 'suppressWarnings' to indicate that no warnings should be issued if the config is such that there are uncertainties in the calculation. TODO: figure out what 'carps' is Throws: an Error on invalid invocation or args, carps if multicharacter substitutions are in use when not using adaptive padding
Notes: This function ignores character replacements, if one or more multicharacter replacements are used when padding is not set to adaptive, this function will return an invalid max length.
TODO can we move this to the Presets class? ? stats in Statistics class or configStats in Presets
 Source:
Parameters:
Name  Type  Default  Description 

suppressWarnings 
boolean 
false

suppress warnings, defaults to false 
Throws:
Error on exception
Returns:
 stats object on this config
 Type
 object