Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में पासवर्ड वैधता जांचना

मजबूत पासवर्ड नीति लागू करने के लिए सामान्य मानदंड:

  • न्यूनतम 8, अधिकतम 14 कैरेक्टर
  • कम से कम एक लोअरकेस अक्षर
  • कम से कम एक अपरकेस अक्षर
  • कम से कम एक अंक
  • कम से कम एक विशेष कैरेक्टर
  • कोई व्हाइटस्पेस नहीं

व्यक्तिगत जांच

// लंबाई जांच
if (password.Length < 8 || password.Length > 14) return false;

// कम से कम एक लोअरकेस
if (!password.Any(char.IsLower)) return false;

// कम से कम एक अपरकेस
if (!password.Any(char.IsUpper)) return false;

// कम से कम एक अंक
if (!password.Any(char.IsDigit)) return false;

// कोई व्हाइटस्पेस नहीं
if (password.Contains(" ")) return false;

// कम से कम एक विशेष कैरेक्टर
string specialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";
if (!password.Any(c => specialChars.Contains(c))) return false;

पूर्ण वैलिडेशन मेथड

using System;
using System.Linq;

public static class PasswordValidator {
    private static readonly string SpecialChars = @"%!@#$%^&*()?/>.<,:;'\|}]{[_~`+=-""";

    public static (bool IsValid, string ErrorMessage) Validate(string password) {
        if (string.IsNullOrEmpty(password))
            return (false, "Password cannot be empty");

        if (password.Length < 8)
            return (false, "Password must be at least 8 characters");

        if (password.Length > 14)
            return (false, "Password must not exceed 14 characters");

        if (password.Any(char.IsWhiteSpace))
            return (false, "Password cannot contain whitespace");

        if (!password.Any(char.IsLower))
            return (false, "Password must contain at least one lowercase letter");

        if (!password.Any(char.IsUpper))
            return (false, "Password must contain at least one uppercase letter");

        if (!password.Any(char.IsDigit))
            return (false, "Password must contain at least one digit");

        if (!password.Any(c => SpecialChars.Contains(c)))
            return (false, "Password must contain at least one special character");

        return (true, "Password is valid");
    }
}

// उपयोग
var (valid, message) = PasswordValidator.Validate("MyPass123!");
Console.WriteLine($"{valid}: {message}");

Regex के साथ (कॉम्पैक्ट)

using System.Text.RegularExpressions;

public static bool IsValidPassword(string password) {
    // (?=.*[a-z]) - कम से कम एक लोअरकेस
    // (?=.*[A-Z]) - कम से कम एक अपरकेस
    // (?=.*\d)    - कम से कम एक अंक
    // (?=.*[!@#$%^&*]) - कम से कम एक विशेष कैरेक्टर
    // .{8,14}    - 8-14 कैरेक्टर लंबाई
    var pattern = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,14}$";
    return Regex.IsMatch(password, pattern);
}

पासवर्ड स्ट्रेंथ स्कोरिंग

public static int GetPasswordStrength(string password) {
    int score = 0;
    if (password.Length >= 8) score++;
    if (password.Length >= 12) score++;
    if (password.Any(char.IsLower)) score++;
    if (password.Any(char.IsUpper)) score++;
    if (password.Any(char.IsDigit)) score++;
    if (password.Any(c => SpecialChars.Contains(c))) score++;
    // एंट्रॉपी, सामान्य पैटर्न जांच आदि जोड़ सकते हैं
    return score; // 0-6
}

सर्वोत्तम अभ्यास

  • कभी भी पासवर्ड को प्लेन टेक्स्ट में स्टोर न करें - BCrypt, Argon2, PBKDF2 से हैश करें।
  • पासवर्ड मैनेजर के साथ संगतता के लिए बहुत सख्त नियमों से बचें।
  • NIST दिशानिर्देश: लंबाई जटिलता से अधिक महत्वपूर्ण - न्यूनतम 8, अधिकतम 64+।
  • ब्रीच्ड पासवर्ड सूचियों (HaveIBeenPwned API) के विरुद्ध जांचें।
  1. Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना है कि दूसरा ट्री पहले का सबट्री है या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: solve() फ़ंक्शन परिभाषित करें। यह root, target लेगा यदि root null है और target भी null है, तो True लौटा

  1. - पायथन में दिए गए पासवर्ड के मानदंडों को पूरा करने की जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है, जो एक पासवर्ड को दर्शाती है, हमें पासवर्ड मानदंडों की जांच करनी है। कुछ नियम हैं जिनका हमें पालन करना होगा: पासवर्ड की लंबाई कम से कम 8 वर्ण और अधिकतम 20 वर्ण होनी चाहिए। पासवर्ड में कम से कम एक अंक होना चाहिए पासवर्ड में कम से कम एक लोअरकेस और एक अपरकेस वर्ण

  1. - पासवर्ड की वैधता जांचने का पायथन प्रोग्राम

    समस्या विवरण यहां एक पासवर्ड दिया गया है, हमारा कार्य यह जांचना है कि यह पासवर्ड वैध है या नहीं। यहां हम re मॉड्यूल का उपयोग करते हैं जो नियमित अभिव्यक्ति प्रदान करता है और re.search() का उपयोग वर्णमाला, अंक या विशेष वर्णों के सत्यापन की जांच के लिए किया जाता है। एल्गोरिदम सबसे पहले हम एक अल्फान्य