using System.Text.RegularExpressions;
public static void Main() {
String password = "Password123";
PasswordScore passwordStrengthScore = PasswordAdvisor.CheckStrength(password);
switch (passwordStrengthScore) {
case PasswordScore.Blank:
case PasswordScore.VeryWeak:
Console.WriteLine("Weak:"+PasswordScore.Weak);
case PasswordScore.Medium:
case PasswordScore.Strong:
case PasswordScore.VeryStrong:
Console.WriteLine("Strong:"+(int)passwordStrengthScore);
Console.WriteLine("Weak:"+passwordStrengthScore);
public enum PasswordScore {
public class PasswordAdvisor {
public static PasswordScore CheckStrength(string password) {
return PasswordScore.Blank;
return PasswordScore.VeryWeak;
if (password.Length >= 8)
if (password.Length >= 12)
if (Regex.IsMatch(password, @"\d+"))
if (Regex.IsMatch(password, @"[a-z]") && Regex.IsMatch(password, @"[A-Z]"))
if (Regex.IsMatch(password, @".[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]"))
return (PasswordScore)score;