Files
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

39 lines
778 B
Go

package matching
import (
"github.com/trustelem/zxcvbn/match"
)
type reverseDictionnaryMatch struct {
dm dictionaryMatch
}
func (rdm reverseDictionnaryMatch) Matches(password string) []*match.Match {
reversedPassword := reverse(password)
matches := rdm.dm.Matches(reversedPassword)
for _, m := range matches {
m.Token = reverse(m.Token)
m.Reversed = true
m.I, m.J = len(password)-1-m.J, len(password)-1-m.I
}
match.Sort(matches)
return matches
}
func reverse(input string) string {
// Get Unicode code points.
n := 0
rune := make([]rune, len(input))
for _, r := range input {
rune[n] = r
n++
}
rune = rune[0:n]
// Reverse
for i := 0; i < n/2; i++ {
rune[i], rune[n-1-i] = rune[n-1-i], rune[i]
}
// Convert back to UTF-8.
return string(rune)
}