// You can set your own rules
object PasswordStrengthChecker_Scala {
def checkPasswordStrength(password: String): String = {
val length = password.length
var hasLower = false
var hasUpper = false
var hasDigit = false
var specialChar = false
val lowuppdig = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for (i <- 0 until length) {
if (password.charAt(i).isLower) {
hasLower = true
}
if (password.charAt(i).isUpper) {
hasUpper = true
}
if (password.charAt(i).isDigit) {
hasDigit = true
}
if (!lowuppdig.contains(password.charAt(i))) {
specialChar = true
}
}
if (hasLower && hasUpper && hasDigit && specialChar && length >= 10) {
"Strong"
} else if ((hasLower || hasUpper) && specialChar && length >= 8) {
"Medium"
} else {
"Weak"
}
}
def main(args: Array[String]): Unit = {
val password = "aq1o@p9$XM"
println(checkPasswordStrength(password))
println(checkPasswordStrength("asW!W)(o"))
println(checkPasswordStrength("WSDFK!#Q"))
println(checkPasswordStrength("n*djskq*"))
println(checkPasswordStrength("WE3q#$"))
}
}
/*
run:
Strong
Medium
Medium
Medium
Weak
*/