core/utils/generate_password.go
2024-07-27 04:02:08 +07:00

24 lines
526 B
Go

package utils
import (
"math/rand"
"github.com/lucasjones/reggen"
)
func GeneratePassword() (string, error) {
patterns := []string{
`[A-Z]{6,}[\d]{2,}[a-z]{2,}[@$!%*?&]{2,}[A-Za-z]{2,}`,
`[A-Za-z]{2,}[a-z]{6,}[\d]{2,}[@$!%*?&]{4,}`,
`[\d]{2,}[A-Z]{6,}[@$!%*?&]{4,}[a-z]{2,}`,
`[@$!%*?&]{4,}[a-z]{4,}[A-Z]{4,}[\d]{2,}`,
`[A-Z]{2,}[@$!%*?&]{6,}[a-z]{4,}[\d]{2,}`,
`[A-Z]{4,}[\d]{6,}[@$!%*?&]{4,}[a-z]{2,}`,
}
i := rand.Intn(len(patterns))
pass, err := reggen.Generate(patterns[i], 14)
return pass, err
}