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

1 Answer

0 votes
// You can set your own rules

fn check_password_strength(password: &str) -> &str {
    let length = password.len();

    let mut has_lower = false;
    let mut has_upper = false;
    let mut has_digit = false;
    let mut special_char = false;

    let lowuppdig = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

    for c in password.chars() {
        if c.is_lowercase() {
            has_lower = true;
        }
        if c.is_uppercase() {
            has_upper = true;
        }
        if c.is_digit(10) {
            has_digit = true;
        }
        if !lowuppdig.contains(c) {
            special_char = true;
        }
    }

    if has_lower && has_upper && has_digit && special_char && length >= 10 {
        return "Strong";
    } else if (has_lower || has_upper) && special_char && length >= 8 {
        return "Medium";
    }

    "Weak"
}

fn main() {
    let password = "aq1o@p9$XM";

    println!("{}", check_password_strength(password));
    println!("{}", check_password_strength("asW!W)(o"));
    println!("{}", check_password_strength("WSDFK!#Q"));
    println!("{}", check_password_strength("n*djskq*"));
    println!("{}", check_password_strength("WE3q#$"));
}


      
/*
run:
  
Strong
Medium
Medium
Medium
Weak
 
*/
 

 



answered Oct 23, 2024 by avibootz
edited Oct 23, 2024 by avibootz
...