Прочитав этот совет, вы сможете написать простой генератор паролей на С#.
Вот так это будет выглядеть:
Создаем новый проект WindowsFormsApplication и добавляем на форму: 2-а textBox, 4-и checkBox, один numericUpDown и одну кнопку (button). Размещаем компоненты на форме, так как вам нравиться, с соблюдением логики приложения.
Вопрос о оформлении компонентов не рассматриваться т.к. эта тема именно в данном контексте является очень простой и я считаю, что лучше уделить внимание коду.
Теперь пишем код в кнопке:
Первым делом необходимо сформировать словарь из которого будут генерироваться пароли, для этого пишем такой код: string dic = "";
string tmp = "";
if (checkBox1.Checked)
{
char nchar;
for (int i = 65; i < 91; i )
{
nchar = (char)i;
tmp = Convert.ToString(nchar);
}
dic = tmp;
}
if (checkBox2.Checked) dic = "0123456789";
if (checkBox3.Checked) dic = textBox2.Text;
if (checkBox4.Checked)
{
tmp = "";
char nchar;
for (int i = 97; i < 123; i )
{
nchar = (char)i;
tmp = Convert.ToString(nchar);
}
dic = tmp;
}
Думаю что принцип использования условий и циклов вопросов не вызовет, но при этом наверное следует пояснить смысл использования переменной nchar. В эту переменную мы будем писать значения из ASCII-таблицы.
Теперь сам генератор:
string pass = "";
Random mran = new Random();
for (int i = 0; i < numericUpDown1.Value; i )
{
int index = Convert.ToUInt16(mran.NextDouble() * dic.Length) % dic.Length;
char ScharS = dic[index];
pass = Convert.ToString(ScharS);
}
textBox1.Text = pass;
Здесь можно разобрать подробно:
Объявляем переменную пароля: string pass = "";
Объявляем переменную генератора случайных чисел:Random mran = new Random();
Цикл от 0 до numericUpDown1.Value, заданное на форме количество символов в пароле:for (int i = 0; i < numericUpDown1.Value; i )
Объявляем переменную и назначаем значение соответствующее случайному числу из промежутка от 0 до dic.Length, то есть длинны словаря: int index = Convert.ToUInt16(mran.NextDouble() * dic.Length) % dic.Length;
Объявляем переменную и назначаем значение соответствующего символу в словаре, стоящем под номером index:char ScharS = dic[index];
Добавляем сгенерированный символ к паролю:pass = Convert.ToString(ScharS);
Выводим значение переменной pass в текстовое поле на форме:textBox1.Text = pass;
Полный текст:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string dic = "";
string tmp = "";
if (checkBox1.Checked)
{
char nchar;
for (int i = 65; i < 91; i )
{
nchar = (char)i;
tmp = Convert.ToString(nchar);
}
dic = tmp;
}
if (checkBox2.Checked) dic = "0123456789";
if (checkBox3.Checked) dic = textBox2.Text;
if (checkBox4.Checked)
{
tmp = "";
char nchar;
for (int i = 97; i < 123; i )
{
nchar = (char)i;
tmp = Convert.ToString(nchar);
}
dic = tmp;
}
string pass = "";
Random mran = new Random();
for (int i = 0; i < numericUpDown1.Value; i )
{
int index = Convert.ToUInt16(mran.NextDouble() * dic.Length) % dic.Length;
char ScharS = dic[index];
pass = Convert.ToString(ScharS);
}
textBox1.Text = pass;
}
}
}
Удачных проб, с уважением Сургай Владимир.