Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

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

1 Answer

0 votes
// You can set your own rules

class PasswordStrengthChecker {

    fun 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 in 0 until length) {
            when {
                password[i].isLowerCase() -> hasLower = true
                password[i].isUpperCase() -> hasUpper = true
                password[i].isDigit() -> hasDigit = true
                !lowuppdig.contains(password[i]) -> specialChar = true
            }
        }

        return when {
            hasLower && hasUpper && hasDigit && specialChar && length >= 10 -> "Strong"
            (hasLower || hasUpper) && specialChar && length >= 8 -> "Medium"
            else -> "Weak"
        }
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            val checker = PasswordStrengthChecker()
            val passwords = listOf("a#1o@p9!XM", "asW!W)(o", "WSDFK!#Q", "n*djskq*", "WE3q#$")
            for (password in passwords) {
                println(checker.checkPasswordStrength(password))
            }
        }
    }
}



/*
run:
  
Strong
Medium
Medium
Medium
Weak
  
*/

 



answered Oct 23, 2024 by avibootz
...