/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/csharp/lab-12-003/main.cs
52 строки
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
public class PasswordOptions { public int Length { get; set; } = 12; public bool IncludeLowercase { get; set; } = true; public bool IncludeUppercase { get; set; } = true; public bool IncludeDigits { get; set; } = true; public bool IncludeSpecial { get; set; } = true; public string CustomSpecialChars { get; set; } = "!@#$%^&*()_+-=[]{}|;:,.<>?"; } public class AdvancedPasswordGenerator { public static string Generate(PasswordOptions options) { if (options.Length <= 0) throw new ArgumentException("Длина пароля должна быть положительной."); string lowercase = "abcdefghijklmnopqrstuvwxyz"; string uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string digits = "0123456789"; string special = options.CustomSpecialChars; StringBuilder charsetBuilder = new(); if (options.IncludeLowercase) charsetBuilder.Append(lowercase); if (options.IncludeUppercase) charsetBuilder.Append(uppercase); if (options.IncludeDigits) charsetBuilder.Append(digits); if (options.IncludeSpecial && !string.IsNullOrEmpty(special)) charsetBuilder.Append(special); string charset = charsetBuilder.ToString(); if (string.IsNullOrEmpty(charset)) throw new InvalidOperationException("Набор символов не может быть пустым."); StringBuilder password = new(); RandomNumberGenerator rng = RandomNumberGenerator.Create(); if (options.IncludeLowercase) password.Append(GetRandomChar(rng, lowercase)); if (options.IncludeUppercase) password.Append(GetRandomChar(rng, uppercase)); if (options.IncludeDigits) password.Append(GetRandomChar(rng, digits)); if (options.IncludeSpecial && !string.IsNullOrEmpty(special)) password.Append(GetRandomChar(rng, special)); while (password.Length < options.Length) { password.Append(GetRandomChar(rng, charset)); } return ShuffleString(password.ToString rng); } // Методы GetRandomChar и ShuffleString — как в предыдущем примере }