In this article we will provide you bash script code to check if password is strong or weak. We will match the protocol of – 1 uppercase letter, 1 lowercase letter, 1 number, 1 special character and at least 8 characters long. The regex is Extended Regular Expression (ERE) and not PCRE. So, it will work in bash.
Code Example –
#!/bin/bash is_valid_password() { [[ "$1" =~ ^(.*[a-z]) ]] && [[ "$1" =~ ^(.*[A-Z]) ]] && [[ "$1" =~ ^(.*[0-9]) ]] && [[ "$1" =~ ^(.*[^a-zA-Z0-9]) ]] && [[ "$1" =~ ^(.){8,} ]] && echo 1 } # This password is weak pass="tony@ironman" # regex validation will fail is_valid_password "$pass" || echo "weak password - $pass" strong_pass="Tony@ironman0" # Contains uppercase, lowercase, special char, number, more than 8 chars is_valid_password "$strong_pass" || echo "weak pass - $strong_pass" # Output: # weak password - tony@ironman # Tony@ironman0