Генератор паролей

Программа, генерирующая случайные пароли с символами в разных регистрах, числами и знаками препинания на C#. Писалась в MonoDevelop.

Скачать можно тут.
В качестве входных параметров программе необходимо указать желаемую длину пароля и нужное количество паролей.
В Windows:
passgen.exe длина количество
В Linux:
mono passgen.exe длина количество

Как оно работает?

Сначала создается массив символов, которые можно использовать в тексте паролей. Его формирование основывается на ASCII-кодах символов.
Для добавления в массив символов нижнего регистра используется следующая конструкция:
for (int i = 97; i < 123; i++)
{
chars.Add(Convert.ToChar(i).ToString());
}

Коды 97 — 123 как-раз соответствуют латинским символам нижнего регистра.
Коды латинских символов верхнего регистра — от 65 до 91:
for (int i = 65; i < 91; i++)
{
chars.Add(Convert.ToChar(i).ToString());
}

ASCII-коды цифр находятся в диапазоне от 48 до 58:
for (int i = 48; i < 58; i++)
{
chars.Add(Convert.ToChar(i).ToString());
}

Коды знаков препинания: 33-48 и 58-65
for (int i = 33; i < 48; i++)
{
chars.Add(Convert.ToChar(i).ToString());
}
for (int i = 58; i < 65; i++)
{
chars.Add(Convert.ToChar(i).ToString());
}

Все, массив сформирован. Теперь нужно просто случайным образом извлечь из него нужное количество символов.
За это отвечает конструкция
Random rnd = new Random();
pass += chars[rnd.Next(chars.Count - 1)].ToString();

Random () — класс, предоставляющий доступ к генератору слуайных чисел.
Чтобы получить сучайное число, нужно вызвать его метод Next (), в качестве параметра которому следует передать максимально возможное значение возвращаемого числа.

На выходных (если не забуду :D ) выложу исходники по лицензии GPL.

ЗЫ: А Вы защитили свой блог от матов?

Поблагодарить автора

3 Responses to Генератор паролей

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>