How to check whether a given password is strong, medium, or weak in Swift

1 Answer

0 votes
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

*/

 



answered Oct 23, 2024 by avibootz
...