|
|
@ -0,0 +1,56 @@ |
|
|
|
package main |
|
|
|
|
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"unicode" |
|
|
|
) |
|
|
|
|
|
|
|
func passwordChecker(pw string) bool { |
|
|
|
|
|
|
|
pwR := []rune(pw) |
|
|
|
|
|
|
|
if len(pwR) < 8 || len(pwR) > 15 { |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
hasUpper := false |
|
|
|
hasLower := false |
|
|
|
hasNumber := false |
|
|
|
hasSymbol := false |
|
|
|
|
|
|
|
for _, v := range pwR { |
|
|
|
|
|
|
|
if unicode.IsUpper(v) { |
|
|
|
hasUpper = true |
|
|
|
} |
|
|
|
if unicode.IsLower(v) { |
|
|
|
hasLower = true |
|
|
|
} |
|
|
|
if unicode.IsNumber(v) { |
|
|
|
hasNumber = true |
|
|
|
} |
|
|
|
if unicode.IsPunct(v) || unicode.IsSymbol(v) { |
|
|
|
hasSymbol = true |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return hasUpper && hasLower && hasNumber && hasSymbol |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func main() { |
|
|
|
|
|
|
|
if passwordChecker("") { |
|
|
|
fmt.Println("Password good") |
|
|
|
} else { |
|
|
|
fmt.Println("Password bad") |
|
|
|
} |
|
|
|
|
|
|
|
if passwordChecker("This!I5A") { |
|
|
|
fmt.Println("Password good") |
|
|
|
} else { |
|
|
|
fmt.Println("Password bad") |
|
|
|
} |
|
|
|
|
|
|
|
} |