На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Блокнот с графичиским ключом C#, WinForms

Задание на программу:

Необходимо разработать программный продукт, представляющий собой Блокнот с двухфакторной авторизацией, один элемент из которой представляет собой графический ключ.

Описание программы:

Разработанная программа представляет из себя связку программы (WinForms, C#) + локальная база данных (SQLite).

Методы шифрования:

Логин и пароль шифруются с помощью метода MD5 и хранятся в базе в таком же виде. Графический ключ в виде списка координат так же шифруется с помощью метода гаммирования и записывается в базу данных.

Содержание отчёта (12 страниц):

  • Введение 3
  • Цель работы 4
  • Функциональные возможности 4
  • Математические методы и алгоритмы решения задач 5
  • Ограничения 5
  • Руководство пользователя 6
  • Алгоритм работы программы 8
  • Результаты работы программы 10
  • Выводы 12

Дополнительно:

При регистрации для каждого пользователя указывается картинка. по которой при авторизации он сможет ориентироваться куда нажимать. В случае, если координаты введены неверно, то программа не даст об этом знать, чтоб избежать подбора пароля. Подробное описание работы программы описано в отчёте.

При первом запуске может потребоваться пересобрать проект, чтобы подтянулись необходимы библиотеки. Нажать в верху студии в меню Средства -> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов. Написать в открывшемся окне: update-package -reinstall. Можно использовать ))

Фрагмент программного кода:

private void btnReg_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtLogin.Text.Trim()))
            {
                MessageBox.Show("Введите логин");
                return;
            }

            if (string.IsNullOrEmpty(txtPassword.Text.Trim()))
            {
                MessageBox.Show("Введите логин");
                return;
            }

            if (_points.Count == 0)
            {
                MessageBox.Show("Заполните графический ключ");
                return;
            }

            var login = Convert.ToBase64String(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(txtLogin.Text.Trim())));
            var passwordHash = Convert.ToBase64String(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(txtPassword.Text.Trim())));

            using (var command = _connection.CreateCommand())
            {
                command.CommandText = "SELECT * FROM 'User' WHERE Login = @login";
                command.Parameters.Add("@login", DbType.String).Value = login;
                var count = command.ExecuteScalar();

                if (count == DBNull.Value || count == null || Convert.ToInt32(count) == 0)
                {                    
                    var accutacy = (int)numAccuracy.Value;
                    var image = ImageToBytes(picKey.Image);
                    var data = Crypt.Gamming(JsonConvert.SerializeObject(new ImageData(accutacy, _points)), login);

                    // Insert image
                    command.CommandText = "INSERT INTO 'Image' (Image, Data) VALUES(@image, @data)";
                    command.Parameters.Add("@image", DbType.Binary).Value = image;
                    command.Parameters.Add("@data", DbType.String).Value = data;
                    command.ExecuteNonQuery();

                    command.CommandText = "select last_insert_rowid()";
                    var imageID = Convert.ToInt32(command.ExecuteScalar());

                    // Insert User with reference to Image
                    command.CommandText = "INSERT INTO 'User' (Login, PasswordHash, ImageID) VALUES(@login, @passwordHash, @imageID)";
                    command.Parameters.Add("@login", DbType.String).Value = login;
                    command.Parameters.Add("@passwordHash", DbType.String).Value = passwordHash;
                    command.Parameters.Add("@imageID", DbType.Int32).Value = imageID;
                    var result = command.ExecuteNonQuery();

                    MessageBox.Show($"Пользователь {txtLogin.Text} успешно зарегестрирован!");
                    this.Close();
                }
                else if (Convert.ToInt32(count) != 0)
                {
                    MessageBox.Show("Пользователь с таким именем уже существует");
                }
            }
        }

Скриншот архива с проектом:

Содержание архива:

  • папка с исходным проектом в Visual Studio 2019 и базой данных;
  • отчёт по программе.
Купить 2000,00 
Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

kostyaLem

/ /

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

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Похожие работы
Тип Название Рейтинг Категория Стоимость
Контрольная Театр (C#, WinForms, Access) new 0 .NET (C#) 1 500,00
Исходник Ортогональная и аксонометрическая проекция C# WinForms 0 .NET (C#) 800,00
Исходник ИС "Факультет" (C#, WinForms, Access) new 0 .NET (C#) 1 000,00
Исходник Логическая мини-игра (C#+WinForms) -1 .NET (C#) 1 000,00
Исходник Сборник программ C# WinForms Visual Studio 2015 19 .NET (C#) 960,00
Другие работы автора
Тип Название Рейтинг Категория Стоимость
Исходник АИС База данных "Настольные игры" (C#, WinFroms, SQLite) 0 .NET (C#) 3 000,00
Курсовая АИС Складского учета (C#, WinForms) 14 .NET (C#) 2 500,00
Курсовая АИС Учёта заказов станции технического обслуживания (C#,WinForms,SQL Server) 0 .NET (C#) 4 000,00
Лабораторная Алгоритм Банкира C# 0 .NET (C#) 450,00
Лабораторная База данных Книг (C#/WPF/SQLite) 0 .NET (C#) 2 600,00
Новые работы
Тип Название Рейтинг Категория Стоимость
Исходник Шифр Виженера "Python" new 0 Python 1 000,00
Исходник Библиотека. Учет книг (C#, WPF, NET 6.0, SQL Server) new 0 .NET (C#) 2 000,00
Исходник Учет посещаемости занятий (C#, WPF, SQL Server, SQLite) new 0 .NET (C#) 2 500,00
Исходник Программа "Гипотеза Коллатца" Python new 0 Python 500,00
Исходник Генератор календарей (Python) new 1 Python 800,00
Купить

2000,00 

Сразу после оплаты Вы получите работу на электронную почту. Файлы отправляются автоматически. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

SecureNotepad.rar
538320
Оцени работу

рейтинг

Категории
Блокнот с графичиским ключом C#, WinForms
Необходимо разработать программный продукт, представляющий собой Блокнот с двухфакторной авторизацией, один элемент из которой представляет собой графический ключ. Описание программы: Разработанная программа представляет из себя связку программы (WinForms, C#) + локальная база данных (SQLite).
Категория: Образование
Стоимость: 2000,00