Генерация пароля\строчки по заданному образцу - C#

Узнай цену своей работы

Формулировка задачи:

C C# я только знакомлюсь. Требуется, чтобы скрипт генерировал и возвращал такую строчку - "SAF3DEC2-49UG752D93A5" где каждый символ, это либо заглавная буква, либо цифра. На форуме подобные темы нашёл. Вот сделал скрипт:
 
            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;
Но, он возвращает каждый раз первой цифру, потом букву, потом снова цифру и.т.д. - 6X9Z0J8K-6R4K6H1V1Z0V Как можно это исправить? Чтобы каждый символ случайно мог быть буквой или цифрой. Перепробовал много конструкций, хорошо, если бы можно было как-то так:
            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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы