本文實例講述了C#判斷密碼強度的方法。分享給大家供大家參考。具體如下:
1.關于密碼強度
密碼強度有強弱之分,包含數字、字母和其他符號三者且長度不小于10的密碼被稱為強密碼,只有其中一者或長度不大于6的密碼是弱密碼,其他密碼是中等強度密碼。
2.判斷密碼強弱的函數
/// <summary>/// 密碼強度/// </summary>private enum Strength{ Invalid = 0, //無效密碼 Weak = 1, //低強度密碼 Normal = 2, //中強度密碼 Strong = 3 //高強度密碼};/// <summary>/// 計算密碼強度/// </summary>/// <param name="password">密碼字符串</param>/// <returns></returns>private static Strength PasswordStrength(string password){ //空字符串強度值為0 if (password == "") return Strength.Invalid; //字符統計 int iNum = 0, iLtt = 0, iSym = 0; foreach (char c in password) { if (c >= '0' && c <= '9') iNum++; else if (c >= 'a' && c <= 'z') iLtt++; else if (c >= 'A' && c <= 'Z') iLtt++; else iSym++; } if (iLtt == 0 && iSym == 0) return Strength.Weak; //純數字密碼 if (iNum == 0 && iLtt == 0) return Strength.Weak; //純符號密碼 if (iNum == 0 && iSym == 0) return Strength.Weak; //純字母密碼 if (password.Length <= 6) return Strength.Weak; //長度不大于6的密碼 if (iLtt == 0) return Strength.Normal; //數字和符號構成的密碼 if (iSym == 0) return Strength.Normal; //數字和字母構成的密碼 if (iNum == 0) return Strength.Normal; //字母和符號構成的密碼 if (password.Length <= 10) return Strength.Normal; //長度不大于10的密碼 return Strength.Strong; //由數字、字母、符號構成的密碼}
3.Main函數調用
static void Main(string[] args){ string sPassword; while (true) { Console.WriteLine("請輸入一個密碼:"); sPassword = Console.ReadLine(); switch (PasswordStrength(sPassword)) { case Strength.Invalid: Console.WriteLine("無效密碼/n"); break; case Strength.Weak: Console.WriteLine("低強度密碼/n"); break; case Strength.Normal: Console.WriteLine("中強度密碼/n"); break; case Strength.Strong: Console.WriteLine("高強度密碼/n"); break; } }}
4.運行結果:
希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答