using MudBlazor; namespace RobotNet.IdentityServer.Services; public class PasswordStrengthService { /// /// Đánh giá độ mạnh của mật khẩu (thang điểm 0-100) /// /// Mật khẩu cần đánh giá /// Điểm đánh giá từ 0-100 public int EvaluatePasswordStrength(string password) { if (string.IsNullOrEmpty(password)) return 0; int strength = 0; // Đánh giá dựa trên độ dài if (password.Length >= 1) strength += 5; if (password.Length >= 3) strength += 5; if (password.Length >= 6) strength += 10; if (password.Length >= 8) strength += 10; if (password.Length >= 10) strength += 10; // Đánh giá dựa trên độ phức tạp if (password.Any(char.IsUpper)) strength += 15; if (password.Any(char.IsLower)) strength += 15; if (password.Any(char.IsDigit)) strength += 15; if (password.Any(c => !char.IsLetterOrDigit(c))) strength += 15; return System.Math.Min(strength, 100); } /// /// Lấy màu tương ứng với độ mạnh của mật khẩu /// /// Điểm đánh giá độ mạnh (0-100) /// Color tương ứng public Color GetStrengthColor(int strength) { if (strength < 30) return Color.Error; if (strength < 60) return Color.Warning; if (strength < 80) return Color.Info; return Color.Success; } /// /// Lấy mô tả tương ứng với độ mạnh của mật khẩu /// /// Điểm đánh giá độ mạnh (0-100) /// Mô tả dạng văn bản public string GetStrengthDescription(int strength) { if (strength == 0) return "Chưa nhập mật khẩu"; if (strength < 30) return "Mật khẩu yếu"; if (strength < 60) return "Mật khẩu trung bình"; if (strength < 80) return "Mật khẩu tốt"; return "Mật khẩu mạnh"; } }