C#判斷密碼強(qiáng)度的方法
本文實(shí)例講述了C#判斷密碼強(qiáng)度的方法。分享給大家供大家參考。具體如下:
1.關(guān)于密碼強(qiáng)度
密碼強(qiáng)度有強(qiáng)弱之分,包含數(shù)字、字母和其他符號(hào)三者且長(zhǎng)度不小于10的密碼被稱為強(qiáng)密碼,只有其中一者或長(zhǎng)度不大于6的密碼是弱密碼,其他密碼是中等強(qiáng)度密碼。
2.判斷密碼強(qiáng)弱的函數(shù)
/// <summary> /// 密碼強(qiáng)度 /// </summary> private enum Strength { Invalid = 0, //無(wú)效密碼 Weak = 1, //低強(qiáng)度密碼 Normal = 2, //中強(qiáng)度密碼 Strong = 3 //高強(qiáng)度密碼 }; /// <summary> /// 計(jì)算密碼強(qiáng)度 /// </summary> /// <param name="password">密碼字符串</param> /// <returns></returns> private static Strength PasswordStrength(string password) { //空字符串強(qiáng)度值為0 if (password == "") return Strength.Invalid; //字符統(tǒng)計(jì) 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; //純數(shù)字密碼 if (iNum == 0 && iLtt == 0) return Strength.Weak; //純符號(hào)密碼 if (iNum == 0 && iSym == 0) return Strength.Weak; //純字母密碼 if (password.Length <= 6) return Strength.Weak; //長(zhǎng)度不大于6的密碼 if (iLtt == 0) return Strength.Normal; //數(shù)字和符號(hào)構(gòu)成的密碼 if (iSym == 0) return Strength.Normal; //數(shù)字和字母構(gòu)成的密碼 if (iNum == 0) return Strength.Normal; //字母和符號(hào)構(gòu)成的密碼 if (password.Length <= 10) return Strength.Normal; //長(zhǎng)度不大于10的密碼 return Strength.Strong; //由數(shù)字、字母、符號(hào)構(gòu)成的密碼 }
3.Main函數(shù)調(diào)用
static void Main(string[] args) { string sPassword; while (true) { Console.WriteLine("請(qǐng)輸入一個(gè)密碼:"); sPassword = Console.ReadLine(); switch (PasswordStrength(sPassword)) { case Strength.Invalid: Console.WriteLine("無(wú)效密碼\n"); break; case Strength.Weak: Console.WriteLine("低強(qiáng)度密碼\n"); break; case Strength.Normal: Console.WriteLine("中強(qiáng)度密碼\n"); break; case Strength.Strong: Console.WriteLine("高強(qiáng)度密碼\n"); break; } } }
4.運(yùn)行結(jié)果:
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
用C#獲取硬盤序列號(hào),CPU序列號(hào),網(wǎng)卡MAC地址的源碼
用C#獲取硬盤序列號(hào),CPU序列號(hào),網(wǎng)卡MAC地址的源碼...2007-03-03C# KeyUp事件中MessageBox的回車(Enter)鍵回調(diào)問(wèn)題解決方案
這篇文章主要介紹了C# KeyUp事件中MessageBox的回車(Enter)鍵回調(diào)問(wèn)題解決方案,需要的朋友可以參考下2014-07-07C# 利用Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化操作的示例代碼
這篇文章主要介紹了C# 利用Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化操作,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-09-09DevExpress設(shè)置TreeList圖片節(jié)點(diǎn)背景色的方法
這篇文章主要介紹了DevExpress設(shè)置TreeList圖片節(jié)點(diǎn)背景色的方法,需要的朋友可以參考下2014-08-08利用多線程句柄設(shè)置鼠標(biāo)忙碌狀態(tài)的實(shí)現(xiàn)方法
怎樣利用多線程句柄設(shè)置鼠標(biāo)忙碌狀態(tài)呢?下面小編就為大家介紹一下具體的實(shí)現(xiàn)方法吧!需要的朋友可以過(guò)來(lái)參考下2013-08-08