C#斷定暗碼強度的辦法。本站提示廣大學習愛好者:(C#斷定暗碼強度的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#斷定暗碼強度的辦法正文
本文實例講述了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#法式設計有所贊助。