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

1 Answer

0 votes
// You can set your own rules

function checkPasswordStrength($password) {
    $length = strlen($password);

    $hasLower = false;
    $hasUpper = false;
    $hasDigit = false;
    $specialChar = false;

    $lowuppdig = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';

    for ($i = 0; $i < $length; $i++) {
        if (ctype_lower($password[$i])) {
            $hasLower = true;
        }
        if (ctype_upper($password[$i])) {
            $hasUpper = true;
        }
        if (ctype_digit($password[$i])) {
            $hasDigit = true;
        }
        if (strpos($lowuppdig, $password[$i]) === false) {
            $specialChar = true;
        }
    }

    if ($hasLower && $hasUpper && $hasDigit && $specialChar && $length >= 10) {
        return 'Strong';
    } else if (($hasLower || $hasUpper) && $specialChar && $length >= 8) {
        return 'Medium';
    }

    return 'Weak';
}

$passwords = ['aq1o@p9$XM', 'asW!W)(o', 'WSDFK!#Q', 'n*djskq*', 'WE3q#$'];

foreach ($passwords as $password) {
    echo checkPasswordStrength($password) . "\n";
}



/*
run:
   
Strong
Medium
Medium
Medium
Weak
   
*/

 



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