Не так давно начал осваивать азы C#. До этого я создавал утилиты и небольшие программы на Visual Basic включая Visual Basic for applications. За плечами техникум и институт, но там, как ни странно, меня не учили программировать вообще, поэтому Visual Basic я изучал самостоятельно, а теперь перешёл на C#.

На текущий момент переписываю программу, которая собирает техническую информацию на стороне клиента нашей компании и отправляет её нам в архиве, защищённом паролем. Это упрощает жизнь нашим специалистам технической поддержки, тестировщикам и разработчикам, так как разбираясь с проблемой клиента мы имеем у себя все технические данные. Клиент программу запускает сам, сам жмёт на кнопку отправки данных в наш адрес, поэтому всё прозрачно и никаких секретов от клиента.

Выше я сказал, что архив защищён паролем, который программа генерирует автоматически перед архивацией. В интернете много примеров генераторов паролей, однако я решил по максимуму упростить код, чтобы не было нагромождения кода. И здесь привожу реализацию метода генерации пароля на C#.

private void GeneratePass()
{
    string iPass = "";
    string[] arr = { "1","2","3","4","5","6","7","8","9","B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Z","b","c","d","f","g","h","j","k","m","n","p","q","r","s","t","v","w","x","z","A","E","U","Y","a","e","i","o","u","y" };
    Random rnd = new Random();
    for (int i = 0; i < 30; i = i + 1)
    {
        iPass = iPass + arr[rnd.Next(0, 57)];
    }
}

arr – массив, в котором я указал все символы, которые будут участвовать в генерации паролей. Из массива убраны — 0(ноль), O, l(L), I (И большое), чтобы при наборе пароля человек не путал символы (Облегчаем жизнь нашим специалистам). Вы также можете в массив добавить спецсимволы и т.д.

i < 30 – отвечает за длину пароля (30 символов), если хотите изменить длину пароля, то измените данное число.

(0, 57) – указываем длину массива, из которого программа будет выбирать символы для генерации пароля. К примеру, если укажем (0, 10), то программа будет перебирать из массива символы с 0 по 10 («1», «2», «3», «4», «5», «6», «7», «8», «9», «B», «C») и только из них формировать пароли. У нас в массиве 58 символов, поэтому мы и указали (0, 57) – отсчёт начинается с нуля.

iPass — в данной переменной будет содержаться конечный результат.