Генерация пароля\строчки по заданному образцу - C#
Формулировка задачи:
C C# я только знакомлюсь.
Требуется, чтобы скрипт генерировал и возвращал такую строчку - "SAF3DEC2-49UG752D93A5"
где каждый символ, это либо заглавная буква, либо цифра.
На форуме подобные темы нашёл.
Вот сделал скрипт:
Но, он возвращает каждый раз первой цифру, потом букву, потом снова цифру и.т.д. - 6X9Z0J8K-6R4K6H1V1Z0V
Как можно это исправить? Чтобы каждый символ случайно мог быть буквой или цифрой.
Перепробовал много конструкций, хорошо, если бы можно было как-то так:
var rand = new Random(); string pass = string.Empty; for (int i=0;i<4;i++) { pass += (char)rand.Next(48, 58); pass += (char)rand.Next(65, 91); } var rand2 = new Random(); string pass2 = string.Empty; for (int i=0;i<6;i++) { pass2 += (char)rand.Next(48, 58); pass2 += (char)rand.Next(65, 91); } return pass + '-' + pass2;
for (int i=0;i<8;i++) { pass += (char)rand.Next(48, 58) || pass += (char)rand.Next(65, 91); }
Решение задачи: «Генерация пароля\строчки по заданному образцу»
textual
Листинг программы
using System; using System.Text; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { string pass = RandomGenerator.GetPass(8, 12, 6); Console.WriteLine(pass); } } public class RandomGenerator { static readonly Random R = new Random(); public static string GetPass(params int[] lengths) { var sb = new StringBuilder(1024); foreach (int length in lengths) { for (int i = 0; i < length; i++) { char c = R.Next(2) == 0 ? (char)R.Next('0', '9' + 1) : (char)R.Next('A', 'Z' + 1); sb.Append(c); } sb.Append('-'); } return sb.Remove(sb.Length - 1, 1).ToString(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д