import Foundation
class PasswordStrengthChecker {
static func checkPasswordStrength(_ password: String) -> String {
let length = password.count
var hasLower = false, hasUpper = false
var hasDigit = false, specialChar = false
let lowuppdig = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for char in password {
if char.isLowercase {
hasLower = true
}
if char.isUppercase {
hasUpper = true
}
if char.isNumber {
hasDigit = true
}
if !lowuppdig.contains(char) {
specialChar = true
}
}
if hasLower && hasUpper && hasDigit && specialChar && length >= 10 {
return "Strong"
} else if (hasLower || hasUpper) && specialChar && length >= 8 {
return "Medium"
}
return "Weak"
}
}
let passwords = ["aq1o@p9$XM", "asW!W)(o", "WSDFK!#Q", "n*djskq*", "WE3q#$"]
for password in passwords {
print(PasswordStrengthChecker.checkPasswordStrength(password))
}
/*
run:
Strong
Medium
Medium
Medium
Weak
*/