zxcvbn.go 659 B

123456789101112131415161718192021
  1. package zxcvbn
  2. import (
  3. "time"
  4. "github.com/nbutton23/zxcvbn-go/match"
  5. "github.com/nbutton23/zxcvbn-go/matching"
  6. "github.com/nbutton23/zxcvbn-go/scoring"
  7. "github.com/nbutton23/zxcvbn-go/utils/math"
  8. )
  9. func PasswordStrength(password string, userInputs []string, filters ...func(match.Matcher) bool) scoring.MinEntropyMatch {
  10. start := time.Now()
  11. matches := matching.Omnimatch(password, userInputs, filters...)
  12. result := scoring.MinimumEntropyMatchSequence(password, matches)
  13. end := time.Now()
  14. calcTime := end.Nanosecond() - start.Nanosecond()
  15. result.CalcTime = zxcvbn_math.Round(float64(calcTime)*time.Nanosecond.Seconds(), .5, 3)
  16. return result
  17. }