Автор работы: Пользователь скрыл имя, 09 Декабря 2012 в 21:41, курсовая работа
Основной целью данной курсовой работы является создание программы генерации паролей. Данная программа является актуальной в наши дни, так как с развитием мировой сети и количеством информации, получаемой из Интернета, увеличился и риск «взлома аккаунта», или дополнительной ащиты информации. Новизна работы состоит в том, что при использовании «Генератора паролей» пользователь может выбирать не только сложность, символику и длину генерируемого пароля, но и использовать так называемую «смешанную методику», то есть генерировать пароли с помощью цифр, букв и прочих символов одновременно.
ВВЕДЕНИЕ
ЦЕЛИ И ЗАДАЧИ
АЛГОРИТМ ПРОГРАММЫ
СТРУКТУРА ПРОГРАММЫ
ОТЛАДКА ПРОГРАММЫ И ПРИМЕР
ВЫВОДЫ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
}
//очистка всех текстбоксов, блокировка кнопки старт и очистка чек боксов, открытие полей для ввода новых символов
private void справкаОПрограмеToolStripMenuI
{
this.textBox1.Text = "";
this.textBox2.Text = "";
this.textBox3.Text = "";
this.textBox4.Text = "";
this.textBox5.Text = "";
this.textBox6.Text = "";
this.textBox7.Text = "";
this.textBox8.Text = "";
listBox1.Items.Clear();
button1.Enabled = false;
checkBox4.Checked = false;
checkBox3.Checked = false;
checkBox2.Checked = false;
checkBox1.Checked = false;
listBox1.Visible = false;
label2.Visible = false;
textBox8.Enabled = true;
textBox5.Enabled = true;
textBox1.Enabled = true;
}
//проверка на правильность и корректность ввода с последующей разблокировкой кнопки, если все поля заполнены
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox8.TextLength != 0 && textBox1.TextLength
!= 0&&textBox5.TextLength!=0&&(
button1.Enabled = true;
}
private void textBox8_TextChanged(object sender, EventArgs e)
{
if (textBox8.TextLength != 0 && textBox1.TextLength != 0 && textBox5.TextLength != 0 && (checkBox1.Checked == true || checkBox2.Checked == true || checkBox3.Checked == true || checkBox4.Checked == true))
button1.Enabled = true;
if(textBox8.TextLength!=0)
{
// ограничение на кол-во выводимых символов
if (Convert.ToInt16(textBox8.
{
}
else
{
MessageBox.Show(" ограничение на кол-во выводимых символов не меньше 1 и не больше 16",”Ошибка”);
textBox8.Text = "";
}
}
}
//ограничение на ввод символов в указаные поля в поля 1 2, чтобы вводились лишь цифры в 3 любые символы
private void _8_5_1(object sender, KeyPressEventArgs e)
{
TextBox tx = sender as TextBox;
if (tx.TabIndex == 13)
{
if (!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
if (tx.TabIndex == 5)
{
if (!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
// Ограничение на строку вводимых символов
// if (textBox1.TextLength > 3)
// e.Handled = true;
}
//проверка на правильность и коректность ввода с последующим разблокировкой кнопки если все поля заполнены
private void textBox5_TextChanged(object sender, EventArgs e)
{
if (textBox8.TextLength != 0 && textBox1.TextLength != 0 && textBox5.TextLength != 0 && (checkBox1.Checked == true || checkBox2.Checked == true || checkBox3.Checked == true || checkBox4.Checked == true))
button1.Enabled = true;
}
//проверка на правильност
ьи коректность ввода с
private void _1_2_3_4(object sender, EventArgs e)
{
if (textBox8.TextLength != 0 && textBox1.TextLength != 0 && textBox5.TextLength != 0 && (checkBox1.Checked == true || checkBox2.Checked == true || checkBox3.Checked == true || checkBox4.Checked == true))
button1.Enabled = true;} }}
ОТЛАДКА ПРОГРАММЫ И ПРИМЕР
Для начала пользователь указывает количество символов в пароле, на ввод данного параметра наложено ограничение, количество символов в пароле можно представить от одной до шестнадцати цифр, на количество выводимых паролей и ввод текста с клавиатуры ограничения не наложены. В качестве исходной информации пользователь может ввести любой произвольный текст (или символ), ограничение есть, и оно обусловлено пределами размера того или иного типа данных. После заполнения данных полей, пользователь должен указать какие символы он хочет видеть в своем пароле, каждый параметр задается отдельным образом, но возможна и комбинирование параметров. Лишь после того, как будут заполнены все поля и все параметры кнопка “start” разблокируется, и пользователь сможет получить результат действия данной программы.
Пример:
Предположим, пользователь вводит с клавиатуры символы “6Ux.”. Данные символы записываются в массив “str” (каждому i-тому элементу массива соответствует i-ый элемент). Так например str[0]=6, str[1]=U, str[2]=x str[3]=.) с, после данные символы переводим в двоичную систему и записываем в отдельный текст бокс, далее создаем массив “mas” и записываем каждый 0 или 1 в отдельности (в двоичном виде наши Элементы выглядят так: 6=110110, U=1010101, x=1111000, .=101110, если брать массив целиком то mas[1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0] ), после того как мы получили 2-ое представление введенного ранее текста, мы совершаем логические операции типа “xor” и результат данных операции записываем в массив mas1(размерность массива mas1[0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 ]) далее из данного массива мы получаем любой Элемент и формируем новый символ, далее идет проверка, удовлетворяет ли наш полученный символ заданным ранее параметрам, если да, то выводим наш символ в listBox если нет продолжаем поиски нужного символа, когда кол-во полученных символов станет равно длине пароля мы переходим на новый виток цикла (если оно того требует) в случае если пользователь генерировал один пароль, или же сгенерировались все пароли программа завершается. Например, пользователь указал длину пароля 5, количество паролей 5 и указал в дополнительных параметрах, что в пароле должны быть лишь маленькие буквы; он получит следующие пароли: gxgnb vgpfc tyelb jrlhh lfdxe.Если бы пользователь указал комбинацию из нескольких параметров, он получил бы другой набор паролей и при повторном запуске данной программы вероятность, что программа сгенерирует точно такие же пароли крайне мала (лично у меня не совпадало еще ни разу), таким образом при выполнении поставленной задачи я свел к минимуму вероятность того, что программа сгенерирует одинаковые пароли, следовательно, возможность простого «угадывания» данного пароля практически равна нулю.
Также можно выбрать наиболее понравившийся вам пароль из списка предложенных, но для этого вам придется задать диапазон шире.
В данной программе я
также использовал
ВЫВОДЫ
В результате проведенной курсовой работы у меня получилось реализовать актуальную, мобильную и удобную программу, доступную всем пользователям и несложную в управлении. Мне также удалось закрепить практические навыки получения и анализа информации, работы с данными.
Я считаю, что реализованный мной продукт удовлетворит требованиям любого пользователя, а пароли, которые генерирует программа, защитят ваши аккаунты и другую информацию.
Считаю, что данная работа будет интересна начинающим программистам, а программа станет полезной для пользователей, нуждающихся в помощи при создании паролей.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ:
private void GenButton_Click(object sender, EventArgs e)
{
int pl = stringtoint(passlength.Text.
string pass = "";//переменная для пароля(можно не использовать, это для простоты восприятия, по уму пишется прямо в password.Text)
Random rand = new Random();//рандомайзер
for (int i = 0; i < pl; i++)
{
int what = rand.Next(3);//рандом на вид(цифра/пропись/строчная)
char s=' ';
if (what == 0)
{
int r = rand.Next(9);//рандом на числа
s = (char)(r + 48);//преобразуем число в символ;
}
else
{
int r = rand.Next(25);//рандом на буквы
if (what == 1)
{
s = (char)(r + 65);//преобразуем число в прописную букву
}
else
{
s = (char)(r + 97);//преобразуем число в строчную букву
}
}
pass += s;
}
password.Text = pass;
password.Visible = true;//делаем поля видимыми
label3.Visible = true;
copybutton.Visible = true;
savebutton.Visible = true;
}