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

Автор работы: Пользователь скрыл имя, 09 Декабря 2012 в 21:41, курсовая работа

Описание работы

Основной целью данной курсовой работы является создание программы генерации паролей. Данная программа является актуальной в наши дни, так как с развитием мировой сети и количеством информации, получаемой из Интернета, увеличился и риск «взлома аккаунта», или дополнительной ащиты информации. Новизна работы состоит в том, что при использовании «Генератора паролей» пользователь может выбирать не только сложность, символику и длину генерируемого пароля, но и использовать так называемую «смешанную методику», то есть генерировать пароли с помощью цифр, букв и прочих символов одновременно.

Содержание работы

ВВЕДЕНИЕ
ЦЕЛИ И ЗАДАЧИ
АЛГОРИТМ ПРОГРАММЫ
СТРУКТУРА ПРОГРАММЫ
ОТЛАДКА ПРОГРАММЫ И ПРИМЕР
ВЫВОДЫ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Файлы: 1 файл

курсовая.doc

— 108.00 Кб (Скачать файл)

Приднестровский государственный  университет им. Т.Г. Шевченко

Инженерно-технический институт

Кафедра “Программное обеспечение вычислительной техники

и автоматизированных систем”

 

 

 

 

КУРСОВАЯ РАБОТА

по предмету

«Программирование на языке  высокого уровня» 

Тема: «Генератор паролей»

 

Выполнил студент гр. № 10 ПОВТ

                                                                     Лагутенков Владимир Сергеевич

 

 

Руководитель, к.т.н., доцент

Столяренко Юлия Александровна

 

 

 

 

Тирасполь,  2011 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

3

ЦЕЛИ И ЗАДАЧИ

4

АЛГОРИТМ ПРОГРАММЫ

5

СТРУКТУРА ПРОГРАММЫ

6-11

ОТЛАДКА ПРОГРАММЫ И  ПРИМЕР

12-14

ВЫВОДЫ

15

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

16-17


 

ВВЕДЕНИЕ

 

Основной целью данной курсовой работы является создание программы генерации паролей. Данная программа является актуальной в наши дни, так  как с развитием мировой сети и количеством информации, получаемой из Интернета, увеличился и риск «взлома аккаунта», или дополнительной ащиты информации.  Новизна работы состоит в том, что при использовании «Генератора паролей» пользователь может выбирать не только  сложность, символику и длину генерируемого пароля, но и использовать так называемую «смешанную методику», то есть генерировать пароли с помощью цифр, букв  и прочих символов одновременно. К тому же «Генератор» предоставляет несколько вариаций сгенерированного пароля, что позволяет сократить до минимума риск совпадения паролей после генерации.

 Все уже созданное программное обеспечение является платным, или условно платным, что лишает программное обеспечение определенных функций. Все программы снабжены не нужным набором функций.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЦЕЛИ И ЗАДАЧИ

 

Целью данной работы является создание программы, генерирующей пароли любой длины и сложности.  Основной задачей данной программы является создание пароля, который обеспечит максимальную защиту информации или аккаунта пользователя. И впоследствии приобретение практических навыков, связанных с поиском и анализом информации, реализацией созданных ранее наработок, а также:

    1. разработок:
  • структур систем программного обеспечения;
  • структур используемых данных;
  • тестовых данных и стратегии тестирования;
  • алгоритмов и программ для их реализации с использованием современной технологиями программирования;

2)отладки интерактивных систем программного обеспечения;

3)составления пояснительной записки для описания функциональных возможностей и сопровождения разработанной системы.

 

 

 

 

 

 

 

 

 

 

 

 

 

АЛГОРИТМ РАБОТЫ ПРОГРАММЫ

БЛОК СХЕМА

 

 


 

 

 

 

СТРУКТУРА ПРОГРАММЫ

 

Программа генерации  пароля состоит из пяти основных блоков:

1.Ввод символов с клавиатуры, и заполнение массива.

2.Предстовление в двоичном виде ранее записанного массива, и запись нового массива.

3.Логичиские операция типа xor.

4.Проверка дополнительных параметров, генерация символов и анализ результатов.

5.Наложение ограничений на вводимы параметры.

Рассмотрим детально каждый блок программы:

1) ввод символов с клавиатуры и заполнение одномерного массива типа String данными символами:

String[] str = new String[textBox1.Text.Length]; //запись в текстбокс вводимых символов

int i, j, k1 = 0, k = Convert.ToInt16(textBox1.Text.Length);

for (i = 0; i < textBox1.Text.Length; i++)//заполнение массива типа стринг

str[i] = textBox1.Text[i].ToString();

 

2)представление в двоичном виде ранее записанного массива данных и заполнение очередного массива типа INT:

for (i = 0; i < k; i++)

{

//в техтбокс записываю 2-ый код символов

                textBox3.AppendText(Convert.ToString((Convert.ToChar(str[i])), 2));

//textBox2.AppendText(Convert.ToString(str[i]));           //textBox6.AppendText(Convert.ToString((Convert.ToChar(str[i])),10)+" ");}

//создаю массив типа  инт куда буду записывать 2-ый код введеных символов

int[] mas = new int[textBox3.Text.Length];

//заполняю массив типа инт

for (i = 0; i < textBox3.Text.Length; i++)

{ mas[i]= Convert.ToInt16(Convert.ToString(Convert.ToChar(textBox3.Text[i])), 2);

textBox4.AppendText(Convert.ToString(mas[i]));         }

3) создание массива  типа INT, в котором представлен результат логических операции типа “xor”:

//создаю новый массив для операции хоr

int[] mas1 = new int[textBox3.Text.Length * textBox3.Text.Length];

//сами операции типа xor и их запись в новый массив

for (i = 0; i < textBox3.Text.Length; i++)

{

for (j = 0; j < textBox3.Text.Length - 1; j++){

mas1[k1] = (mas[i]) ^ (mas[j]);

// textBox5.AppendText(Convert.ToString(mas1[k1])+" ");

k1++;

}

}

k1--;

4) выявление количества и параметров генерируемых паролей, генерация символов и анализ результатов:

//в даном  блоке выполняю : 1) создаю новый  массив для записи 2ого кода после лог-их оперцации

//2) ввожу доп переменные  длины, куда считываю кол-во символов отведеных на пароль и кол-во самих паролей

//3)генерация новых символов, их проверка( удовлетворяет ли  наш символ выбраным параметрам  отбора)в случае если да,

// вывод даного символа в листбокс и генерация нового символ                              //4) проверка на выполнение условия на длину выходного пароля

Random rnd = new Random();

string[] str1 = new string[mas1.Length];

int k2 = 0, k3, k4 = 0, dlina,q=0;

dlina = int.Parse(textBox5.Text);

k3 = Convert.ToInt16(textBox8.Text);

while (q < dlina)

{

q++;

k4 = 0;

textBox2.Text = "";

while (k4 < k3)

{

k2 = 0;

for (i = 0; i < rnd.Next(2) + 6; i++)

{

str1[k2] = Convert.ToString(mas1[rnd.Next(k1)]);

if (i % 7 == 0)

{

if (Convert.ToInt16(str1[i]) == 0)

str1[0] = Convert.ToString(1);

}

                                    textBox6.AppendText(Convert.ToString(str1[k2]));

k2++;

}

int p, p1 = 0, p2;

p = int.Parse(textBox6.Text);

for (i = 33; i < 126; i++)

{

textBox7.Text = Convert.ToString(Convert.ToChar(i), 2);

p2 = int.Parse(textBox7.Text);

if (p == p2)

{

p1 = i;

}

}

if (checkBox1.Checked == true && checkBox2.Checked == true && checkBox3.Checked == true && checkBox4.Checked == true)

{

if (p1 >= 33 && p1 <= 126)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox1.Checked == true && checkBox2.Checked == true && checkBox4.Checked == true)

{

if (p1 >= 97 && p1 <= 122 || p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126 || p1 >= 65 && p1 <= 91)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox1.Checked == true && checkBox2.Checked == true && checkBox3.Checked == true)

{

if (p1 >= 48 && p1 <= 57 || p1>=65&& p1<=90 ||p1>=97&&p1<=122)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if(checkBox1.Checked==true&&checkBox3.Checked==true&&checkBox4.Checked==true)

{

if (p1 >= 97 && p1 <= 122 || p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126||p1>=48&&p1<=57)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox2.Checked == true && checkBox3.Checked == true && checkBox4.Checked == true)

{

if (p1 >= 65 && p1 <= 90 || p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126 || p1 >= 48 && p1 <= 57)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox1.Checked == true && checkBox2.Checked == true)

{

if (p1 >= 65 && p1 <= 90 || p1 >= 97 && p1 <= 122)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox1.Checked == true && checkBox3.Checked == true)

{

if (p1 >= 48 && p1 <= 57 || p1 >= 97 && p1 <= 122)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if(checkBox1.Checked==true&&checkBox4.Checked==true)

{

If

(p1 >= 97 && p1 <=

2||p1>=33&&p1<=47||p1>=58&&p1<=64||p1>=91&&p1<=96||p1>=123&&p1<=126)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox2.Checked == true && checkBox3.Checked == true)

{

if (p1 >= 48 && p1 <= 57||p1>=65&&p1<=90)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox2.Checked == true&& checkBox4.Checked == true)

{

if (p1 >= 65 && p1 <= 90 || p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126 )

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox3.Checked == true && checkBox4.Checked == true)

{

if (p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126 || p1 >= 48 && p1 <= 57)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox1.Checked == true)

{

if (p1 >= 97 && p1 <= 122)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox2.Checked == true)

{

if (p1 >= 65 && p1 <= 90 )

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox3.Checked == true)

{

if (p1 >= 48 && p1 <= 57)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

else if (checkBox4.Checked == true)

{

if (p1 >= 33 && p1 <= 47 || p1 >= 58 && p1 <= 64 || p1 >= 91 && p1 <= 96 || p1 >= 123 && p1 <= 126)

{

k4++;

                                        textBox2.AppendText(Convert.ToString(Convert.ToChar(p1)));

}

}

textBox6.Text = "";

}

listBox1.Items.Add(textBox2.Text);

}

5) наложение ограничений на вводимые параметры и ввод дополнительных функций:

// выход из пр-мы

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

//справка для пользователей

private void очисткаToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("Здесь вы можете  сами создать пароль любой  длины и любой сложности.КНОПКА НЕ разблокируется до тех пор, пока НЕ ЗАПОЛНИТЕ ВСЕ поля и НЕ ПОСТАВИТЕ хоть одну галочку!!! ");

Информация о работе Генератор паролей