Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

โปรแกรม C# ตรวจสอบความถูกต้องของรหัสผ่าน

ตรวจสอบรหัสผ่านตามเกณฑ์มาตรฐาน:

  • ความยาว 8-14 ตัวอักษร
  • มีตัวพิมพ์เล็กอย่างน้อย 1 ตัว
  • ไม่มีช่องว่าง
  • มีตัวพิมพ์ใหญ่อย่างน้อย 1 ตัว
  • มีอักขระพิเศษอย่างน้อย 1 ตัว

โค้ดตรวจสอบแต่ละเงื่อนไข

// 1. ความยาว 8-14
if (passwd.Length < 8 || passwd.Length > 14) return false;

// 2. มีตัวพิมพ์เล็กอย่างน้อย 1
if (!passwd.Any(char.IsLower)) return false;

// 3. ไม่มีช่องว่าง
if (passwd.Contains(" ")) return false;

// 4. มีตัวพิมพ์ใหญ่อย่างน้อย 1
if (!passwd.Any(char.IsUpper)) return false;

// 5. มีอักขระพิเศษอย่างน้อย 1
string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";
foreach (char ch in specialChars) {
    if (passwd.Contains(ch))
        return true; // เจออักขระพิเศษแล้ว
}
return false; // ไม่เจออักขระพิเศษ

ฟังก์ชันรวม (แนะนำ)

public static bool ValidatePassword(string passwd) {
    if (passwd.Length < 8 || passwd.Length > 14) return false;
    if (!passwd.Any(char.IsLower)) return false;
    if (!passwd.Any(char.IsUpper)) return false;
    if (passwd.Contains(" ")) return false;
    string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";
    return passwd.Any(c => specialChars.Contains(c));
}

หมายเหตุ: โค้ดต้นฉบับมีบั๊กในส่วน special character (ตัวแปรซ้ำชื่อ specialCh) ผมแก้ไขแล้ว