/
dashytka
/
PasswordStrengthChecker
Обзор
Документация
Войти
/
dashytka
/
PasswordStrengthChecker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
c
70 строк
2 KB
dashytka
create c#
05 ноя 2025, 08:44
05 ноя 2025, 08:44
79e944c
Код
Авторство
О чём код?
// File: PasswordStrengthChecker.cs using System; using System.Linq; using System.Text.RegularExpressions; namespace SecurityTools { public static class PasswordStrengthChecker { public static PasswordStrength EvaluatePassword(string password) { if (string.IsNullOrEmpty(password)) return PasswordStrength.TooWeak; var score = 0; // Check length if (password.Length >= 8) score++; if (password.Length >= 12) score++; // Check character variety if (HasLowerCase(password)) score++; if (HasUpperCase(password)) score++; if (HasDigits(password)) score++; if (HasSpecialCharacters(password)) score++; // Check for common patterns if (IsCommonPassword(password)) score -= 2; if (HasRepeatingCharacters(password)) score--; return score switch { <= 2 => PasswordStrength.Weak, 3 or 4 => PasswordStrength.Medium, 5 or 6 => PasswordStrength.Strong, _ => PasswordStrength.VeryStrong }; } private static bool HasLowerCase(string password) => password.Any(char.IsLower); private static bool HasUpperCase(string password) => password.Any(char.IsUpper); private static bool HasDigits(string password) => password.Any(char.IsDigit); private static bool HasSpecialCharacters(string password) { var specialCharPattern = new Regex(@"[!@#$%^&*()_+\-=\[\]{};':""\\|,.<>\/?]"); return specialCharPattern.IsMatch(password); } private static bool IsCommonPassword(string password) { var commonPasswords = new[] { "password", "123456", "qwerty", "admin", "letmein" }; return commonPasswords.Contains(password.ToLower()); } private static bool HasRepeatingCharacters(string password) { return Regex.IsMatch(password, @"(.)\1{2,}"); } } public enum PasswordStrength { TooWeak, Weak, Medium, Strong, VeryStrong } }