Как создать генератор паролей на C#

111
Не так давно начал осваивать азы 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 - в данной переменной будет содержаться конечный результат.

4 комментария

  1. Денис Мазитов

    Витек, привет! Как считаешь, насколько реально самостоятельно выучить Java для смены основной деятельности ( работы) ?

    • Привет. Реально всё, если есть желание.
      Если знаешь основы и хотя бы на одном языке что-то писал, то обучение пройдёт быстро. Если никогда не сталкивался с языками программирования, то обучение будет проходить медленее.
      Оптимальный вариант изучать язык программирования и при этом иметь рядом знакомого или друга, который знает этот язык и в любой момент может пояснить непонятные моменты.

  2. Виктор, а что делает ваша программа?

    • Собирает технические данные программы, которую мы поставляем клиентам: логи программы, версии библиотек, настройки программы и т.д. В итоге техническим специалистам легче и быстрее удаётся выявлять проблемы возикающие с нашим ПО.

Добавить комментарий

Ваш адрес email не будет опубликован.