• XSS.stack #1 – первый литературный журнал от юзеров форума

Создаём генератор паролей на C#

EmeliRouse

RAID-массив
Пользователь
Регистрация
28.06.2020
Сообщения
59
Реакции
138
Скрытый контент для зарегистрированных пользователей.

Код начинается с библиотек, нам понадобится всего одна "System", объявляем её (по стандарту она и так будет объявлена, но вдруг вы из тех кто удаляет перед началом работы все библиотеки и пишет только те, которые пригодятся при разработке
C#:
using System;
Пароль состоит из чего? Буквы (могут быть разного регистра) и цифры. Можно ещё использовать спец. символы, но в нашем примере их не будет.
Мы объявляем массив в котором будут содержаться цифры и все буквы разного регистра. У нас будут только латиница, так как я не приемлю пароли на кириллице.
C#:
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" };
И объявляем переменную в которой будет присвоено значения пароля:
C#:
string iPass = "";
Сейчас эта переменная пуста, но в дальнейшем мы поочерёдно будем заполнять её случайными символами из массива.
Ну и чтобы выбрать случайный индекс массива нам понадобится объявить сам рандом:
C#:
Random rnd = new Random();
Осталось совсем чуть-чуть, теперь мы будем создавать сам пароль с помощью цикла "for":
C#:
for (int i = 0; i < 30; i ++)
    {
    iPass = iPass + arr[rnd.Next(0, 57)];
    }
И так, что же в цикле произошло? Мы объявили нулевую переменную, установили условие "Если i меньше 30-ти - выполнять" и добавили действие которое будет выполнятся по окончанию 1 круга цикла: "i++" - это значит что к переменной i будет прибавляться единица. Если проще говорить, то 30 - это цифра обозначающие количество символов в вашем пароле.

Внутри цикла берётся наша переменная с паролем (на данный момент пустая" и к ней прибавляется содержимое случайной ячейки массива.
arr - это имя нашего массива.
rnd - имя объявлённого нами рандома.
.Next - действия рандома, которая выбирает случайную цифру.
(0, 57) - указали ограничения между каким промежутком выбирать цифру. Промежуток не должен выходить за рамки массива. У нас 58 ячеек в массиве (если считать как нормальный человек, программа же ведёт счёт с нуля), поэтому мы указали от нуля до пятидесяти семи.

Далее выводим полученное в консольное окно:
C#:
Console.WriteLine(iPass);
И чтобы консоль не закрылась сразу после выполнения поставленной задачи поставим ключ:
C#:
Console.ReadKey();
Теперь при запуске данной программы нам будет выводится случайно сгенерированный пароль из 30 символов.
Перенести это в Windows Forms не сложно, убираем консольные команды:
C#:
Console.WriteLine(iPass);
Console.ReadKey();
Массив выбрасываем после инициализации куда вашей душе угодно, а всё остальное закидываем в любой обработчик, например кнопку.
Вывести полученное можно в label или textBox, да и вообще в любое место где есть текст, даже в название формы.

 
А точно для этого цэ-хеш нужен? Ёкселя или его бесплатного аналога не хватит?
=CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))&CHAR(RANDBETWEEN(33,127))
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх