Поиск по этому блогу

Показаны сообщения с ярлыком Генератор случайных символов. Показать все сообщения
Показаны сообщения с ярлыком Генератор случайных символов. Показать все сообщения

воскресенье, 29 апреля 2012 г.

Генератор паролей на основе RNGCryptoServiceProvider

Увидел в одном блоге, интересный пример генератора паролей. Мне лично такие варианты ещё не попадались. Вот  решил его разместить у себя в блоге.
На форму нужно кинуть Label, 2 TextBox'a, 1 Buttom. Размещаем в любом порядке, а дальше код.


private void button1_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(textBox1.Text) < 35)
            {
                try
                {
                    //try говорит о ошибке в определённом куске, чтобы её отловить
                    // Вызов функции или выполнение каких-то иных
                    // действий, которые могут генерировать исключение
                    textBox2.Clear();
                    byte[] temp = Generator.RollDice(Convert.ToInt32(textBox1.Text));
                    for (int i = 0; i < temp.Length; i++)
                    {
                        textBox2.Text += (char)temp[i];
                    }
                }
                catch (Exception ex)
                {
                    //catch - выводит сообщение о ошибке возникшей в try
                    // Сюда управление передается в случае, когда в блоке
                    // try сгенерировано исключение — в самом ли блоке, в
                    // функции, которая в нем вызывается, в функции,
                    // которая вызывается функцией, вызванной в try-блоке
                    // и так далее — словом, где угодно. Объект Exception
                    // описывает ошибку
                    MessageBox.Show(ex.Message);
                }
            }
            else
                MessageBox.Show("Введите число меньше 35!!!");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //по умолчанию в текстбоксе будет стоять значение 16
            textBox1.Text = "16";
        }

пятница, 30 марта 2012 г.

Пара простых генераторов случайных последовательностей.


Первый:

int passwordLength = 10;
string allChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789!@$?_-";
char[] chars = new char[passwordLength];
Random rd = new Random();

for (int i = 0; i < passwordLength; i++)
{
chars[i] = allowedChars[rd.Next(0, allowedChars.Length)];
}

Второй:

List<char> chars = new List<char>();
for(int b = 0; b<10; b++)
{
for (int i = 97; i < 123; i++)
{
chars.Add(Convert.ToChar(i));
}
for (int i = 65; i < 91; i++)
{
chars.Add(Convert.ToChar(i));
}
for (int i = 48; i < 58; i++)
{
chars.Add(Convert.ToChar(i));//генерируем символы заглавные, строчные и цифры
}

string s = chars;

Третий:

Char[] pwdChars = new Char[62] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
'r','s','t','u','v','w','x','y','z','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G',
'H','J','K','L','Z','X','C','V','B','N','M','1','2','3','4','5','6','7','8','9','0'};
char[] pass = new char[32];
Random rnd= new Random();
for(int i = 0; i < pass.Length; i++)
{
pass += pwdChars[rnd.Next(0, 62)];
}