Dot-Net

如何檢查密碼強度?

  • February 13, 2016

如何string使用 .Net Framework 檢查密碼的強度(作為 )?

基本但合乎邏輯的:

enum PasswordScore
{
   Blank = 0,
   VeryWeak = 1,
   Weak = 2,
   Medium = 3,
   Strong = 4,
   VeryStrong = 5
}

public class PasswordAdvisor
{
   public static PasswordScore CheckStrength(string password)
   {
       int score = 1;

       if (password.Length < 1)
           return PasswordScore.Blank;
       if (password.Length < 4)
           return PasswordScore.VeryWeak;

       if (password.Length >= 8)
           score++;
       if (password.Length >= 12)
           score++;
       if (Regex.Match(password, @"/\d+/", RegexOptions.ECMAScript))
           score++;
       if (Regex.Match(password, @"/[a-z]/", RegexOptions.ECMAScript) &&
           Regex.Match(password, @"/[A-Z]/", RegexOptions.ECMAScript))
           score++;
       if (Regex.Match(password, @"/.[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]/",  RegexOptions.ECMAScript))
           score++;

       return (PasswordScore)score;
   }
}

參考: http: //passwordadvisor.com/CodeAspNet.aspx

引用自:https://stackoverflow.com/questions/6151576