private bool ConformsLevel(PasswordStrength strength, int length, int distinctCount, CharOptions charOptions) { StrengthLevelData levelStt = _settings.StrengthLevels.FirstOrDefault(lvl => lvl.Strength == strength); if (levelStt != null && levelStt.Conforms(length, distinctCount, charOptions)) { return(true); } return(false); }
public string GenerateStrongPassword() { var safeDigits = "23456789"; var safeLetters = "ABCDEFGHJKMNPQRSTUVWXYZ"; var safeSpecChars = "?&#%$"; var safeLettersAndDigits = safeDigits + safeLetters; var strongStt = _settings.StrengthLevels.FirstOrDefault(lvl => lvl.Strength == PasswordStrength.Strong); if (strongStt == null) strongStt = new StrengthLevelData() { Strength = PasswordStrength.Strong, MinLength = 10, Options = CharOptions.Digit | CharOptions.Letter | CharOptions.SpecialChar | CharOptions.MixedCase }; string pwd = string.Empty; var rand = new Random(); while (pwd.Length < strongStt.MinLength) { pwd += safeLetters[rand.Next(safeLetters.Length)]; pwd += safeDigits[rand.Next(safeDigits.Length)]; } //Add mixed case and special char if specified if (strongStt.Options.IsSet(CharOptions.MixedCase)) pwd += char.ToLowerInvariant(safeLetters[rand.Next(safeLetters.Length)]); if (strongStt.Options.IsSet(CharOptions.SpecialChar)) pwd += safeSpecChars[rand.Next(safeSpecChars.Length)]; return pwd; }
public string GenerateStrongPassword() { var safeDigits = "23456789"; var safeLetters = "ABCDEFGHJKMNPQRSTUVWXYZ"; var safeSpecChars = "?&#%$"; var safeLettersAndDigits = safeDigits + safeLetters; var strongStt = _settings.StrengthLevels.FirstOrDefault(lvl => lvl.Strength == PasswordStrength.Strong); if (strongStt == null) { strongStt = new StrengthLevelData() { Strength = PasswordStrength.Strong, MinLength = 10, Options = CharOptions.Digit | CharOptions.Letter | CharOptions.SpecialChar | CharOptions.MixedCase } } ; string pwd = string.Empty; var rand = new Random(); while (pwd.Length < strongStt.MinLength) { pwd += safeLetters[rand.Next(safeLetters.Length)]; pwd += safeDigits[rand.Next(safeDigits.Length)]; } //Add mixed case and special char if specified if (strongStt.Options.IsSet(CharOptions.MixedCase)) { pwd += char.ToLowerInvariant(safeLetters[rand.Next(safeLetters.Length)]); } if (strongStt.Options.IsSet(CharOptions.SpecialChar)) { pwd += safeSpecChars[rand.Next(safeSpecChars.Length)]; } return(pwd); }