4.0.1
zxcvbn's search algorithm now penalizes pattern sequence length. The old model optimized:
Product(match.guesses for match in sequence)
The new model optimizes a function that includes both a multiplicative and additive penalty:
factorial(length) * product + D^(length - 1)
See comments in scoring.coffee for intuition around the new model.
Backwards-incompatible changes:
- Most property names changed in the
zxcvbn()return object. Removed all mention of entropy in place of more intuitiveguessesandguesses_log10. (entropyin older versions was just log2 ofguesses-- a sloppy use of the term.) - Removed
crack_timeproperty, added instead a dictionary of crack time estimates under different scenarios -- online throttled/unthrottled, and offline with slow/fast hashing. scoreis still on a 0-5 scale, but with adjusted thresholds to reflect resistance to some of those attack scenarios.