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

1 Answer

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

 

 



answered Oct 23, 2024 by avibootz
...