Тип работы:
Предмет:
Язык работы:


Клиент-серверное приложение для распределенной расшифровки сверток паролей

Работа №160701

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы121
Год сдачи2020
Стоимость4600 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
17
Не подходит работа?

Узнай цену на написание


Реферат 2
Введение 6
1. Обзор предметной области 8
1.1 Постановка задачи 8
1.2 Анализ требований для реализации сервера 9
1.3 Анализ требований для реализации клиента 10
1.4 Выбор языка программирования 11
1.5 Win Forms API для создания графического интерфейса 12
1.6 Выбор системы распределенных вычислений 13
2. Выбор протокола передачи данных 15
2.1 Протокол UDP 15
2.2 Протокол TCP 15
3 Выбор программы для распределенного расчета 18
4 Разработка стратегии распределения подзадач 23
5 Реализация клиент-серверного приложения 24
5.1 Описание работы клиент-серверного приложения 24
5.1.1 Описание работы клиента 24
5.1.2 Описание работы сервера 25
5.2 Разработка серверной части приложения 26
5.3 Разработка клиентской части приложения 32
6 Описание приложения 37
6.1 Руководство пользователя сервера 37
6.2 Руководство пользователя клиента 46
6.3 Спецификация сервера 47
6.4 Спецификация клиента 49
6.5 Спецификация библиотеки классов 50
7 Тестирование в одиночном и распределенном режимах 51
7.1 Результат тестирования в одиночном режиме 51
7.2 Результат тестирования в распределенном режиме 52
8 Безопасность жизнедеятельности 55
8.1 Общие требования безопасности 55
8.2 Требования безопасности перед началом работы 56
Заключение 57
Список использованных источников 59
Приложение А Листинги программы сервера 60
Приложение А.1 Файл «Form1.cs» 60
Приложение А.2 Файл «DataTask.cs» 71
Приложение А.3 Файл «AboutBox1.cs» 72
Приложение А.4 Файл «Client.cs» 73
Приложение А.5 Файл «addtask.cs» 73
Приложение А.6 Файл «GetIP.cs» 77
Приложение А.7 Файл «myQueue.cs» 77
Приложение А.8 Файл «Outfile.cs» 78
Приложение А.9 Файл «Queuetask.cs» 79
Приложение А.9 Файл «Queuezadach.cs» 80
Приложение А.9 Файл «raspredtask.cs» 82
Приложение А.10 Файл «spisoktask.cs» 82
Приложение B Листинги программы клиента 83
Приложение B.1 Файл «Forml. cs» 83
Приложение B.2 Файл «SocketPacket.cs» 88
Приложение B.3 Файл «WorkHash.cs» 88
Приложение С Листинги библиотеки классов 90
Приложение C.1 Файл «DataInClient.cs» 90
Приложение C.2 Файл «DataInServer.cs» 90
Приложение D Результаты работы программы 91
Приложение D.1 Вид начально экрана клиента 91
Приложение D.2 Вид свернутого в трей клиента 91
Приложение D.3 Ошибка при подключении к серверу 91
Приложение D.4 Сообщение об отключении сервера 92
Приложение D.5 Вид начально экрана сервера 92
Приложение D.6 Вид экрана с добавленной задачей 93
Приложение D.7 Окно выбора файла handshake 93
Приложение D.8 Вид экрана с сообщением об ошибке 1 94
Приложение D.9 Вид экрана с сообщением об ошибке 2 94
Приложение D.10 Вид экрана с сообщением об ошибке 3 95
Приложение D.11 Контекстное меню 95
Приложение D.12 Вид экрана при расшифровке 96
Приложение D.13 Вид экрана при удачном поиске пароля 96
Приложение D.14 Вид экрана работы сервера 97
Приложение D.15 Вид экрана при удалении задачи 97
Приложение D.16 Вид таблицы подзадач 98
Приложение D.17 Выгруженная таблица в Excel 99
Приложение E UML-диаграммы приложения 103
Приложение E.1 - UML-диаграмма классов сервера 103
Приложение E.2 - UML-диаграмма классов клиента 104
Приложение E.3 - UML-диаграмма вариантов использования сервера 105
Приложение E.4 - UML-диаграмма вариантов использования клиента 105
Приложение E.5 - UML-диаграмма деятельности сервера 106
Приложение E.6 - UML-диаграмма деятельности клиента 107
Приложение E.7 - UML-диаграмма последовательности 108
Приложение E.8 - UML-диаграмма развертывания 108
Приложение F Презентация 109


В настоящее время во многих областях деятельности человека существует большое количество как научно-фундаментальных, так и прикладных задач, решение которых возможно только с использованием высокопроизводительных вычислений.
Для решения этих задач возникает потребность в значительно больших вычислительных ресурсах, чем может предоставить обычный персональный компьютер. Для их решения необходимо большее быстродействия, либо обрабатывать и хранить большие объемы информации.
Для организации высокопроизводительных систем исторически используются суперкомпьютеры - особым образом сконструированные вычислительные комплексы, построенные на специализированных комплектующих и обеспечивающие максимальную производительность. Данные системы имеют большую стоимость как в приобретении, так и в обслуживании.
Однако в некоторых случаях для организации распределённой вычислительной системы подобные решение считаются дорогими и избыточно производительными.
Кластерные системы возникли как более дешевое решение проблемы недостатка вычислительных ресурсов, и основываются на использовании в своей архитектуре широко распространенных и относительно дешевых технологий, аппаратных и программных средств, таких как PC, Ethernet, Linux и т.д. Использование массовых технологий в кластерных системах стало возможным благодаря значительному прогрессу в развитии компонентов обычных вычислительных систем, таких как центральные процессоры, операционные системы, коммуникационные среды...

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе выполнения дипломного проекта было разработано клиент- серверное приложение для распределенной расшифровки сверток паролей. Разработанная система представляет собой распределенную вычислительную систему, предназначенную для создания и управления задачами для распределенной обработки, планирования вычислений в распределенной сети вычислительных узлов, выдачи подзадач и сбора результатов.
В качестве задачи, реализованной в системе, выбрана задача восстановления пароля по его хэш значению.
В результате выполнения работы достигнуто следующее:
- разработана модель функционирования системы, разработаны алгоритмы и реализующие их программы для серверных и вычислительных узлов;
- разработан протокол передачи данных узлам и возврата результатов от узлов на сервер с помощью протокола TCP;
- осуществлено тестирование работы созданной распределенной системы на в нескольких режимах.
Производительность и масштабируемость системы соответствует ожидаемой для кластерной распределенной системы рассматриваемого вида.
В процессе тестирования приложения были выявлены различные проблемы. При отключении клиента, который работал над решением подзадачи, подзадача не возвращалась обратно в очередь. Данная проблема была устранена путем создания для каждого клиента своего GUID-идентификатора и при получении подзадачи, сервер записывал идентификатор в хэш-таблицу подзадачи. При отключении клиента приложение проверяет его GUID в хэш- таблице подзадачи, если идентификатор найден, подзадача возвращается в очередь. Так же одна из ошибок была, возврат клиента в очередь ожидающих. Ошибка была устранена с помощью захвата блокировки для доступа к разделяемым ресурсам. Таким же образом, для исключения ошибок добавления задачи, было реализовано добавление, удаление и распределение на подзадачи...


1. HackWare.ru - Этичный хакинг и тестирование на проникновение, информационная безопасность: https://hackware.ru/
2. А.Н. Токарев, А.В. Прошкин Методика расчета объемов подзадач при равномерном делении в распределенных вычислительных системах с ненадежными узлами. НИТИС-2017, г.Пенза, 2017г.
3. Олифер Виктор, Олифер Наталья Компьютерные сети. Принципы, технологии, протоколы: Юбилейное издание. — СПб.: Питер, 2020. — 1008 с.: ил. — (Серия «Учебник для вузов»)
4. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. Пер.с англ. — М.: Издательский дом «Вильямс», 2003.
5. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002.
6. "Консультант Плюс" - законодательство РФ: кодексы, законы, указы, постановления Правительства Российской Федерации, нормативные акты: https: //www. consultant. ru/



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ