Разработка клиент–серверной программы
Варианты использования приложения, выполняющего регистрацию клиентов, ввод логина, паролей и IP-адресов, сохраняя идентификационные данные в базе данных. Модульная структура программы. Спецификация на программные модули. Шифрование паролей по алгоритму.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 06.03.2015 |
Размер файла | 204,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске
Кафедра вычислительной техники
Лабораторная работа № 1-2
по курсу Системное программное обеспечение
Студент: Ковалёв Р. П.
Группа: ВМ-11
Преподаватель: Ершова М.Г.
Смоленск, 2014
Техническое задание
Разработать клиент - серверную программу со следующими характеристиками:
1. Программа должна включать сервер и три - четыре клиента.
2. Сервер выполняет регистрацию клиентов, ввод логина, паролей и IP - адресов, сохраняя идентификационные данные в базе данных.
3. После регистрации любой клиент может обмениваться данными с другими клиентами через сервер. Запрашиваемый клиент может идентифицироваться по IP - адресу.
Сервер после идентификации зарегистрированного клиента и наличии в базе данных запрашиваемого клиента предоставляет возможность обмена данными. В противном случае клиенту выдается отказ с объяснением причин отказа. Незарегистрированному клиенту предоставляется возможность пройти процедуру регистрации.
4. Пароли пользователей хранятся в БД в шифрованном виде
Описание алгоритмов
Для описания используемых алгоритмов выделим варианты использования приложения и занесем их в таблицу 1.
Таблица 1 - Варианты использования приложения.
Название варианта |
Цель |
Действующие лица |
Краткое описание |
Тип варианта |
|
Регистрация |
Зарегистрировать пользователя |
Пользователь |
Проходя процедуру регистрации, пользователь вводит логин и пароль. Пароль шифруется. |
Основной |
|
Авторизация |
Войти в чат используя зарегистрированную учет. запись |
Пользователь |
Система проверяет есть ли в БД комбинация логин + пароль |
Основной |
|
Отправить сообщение |
Отправить сообщение |
Пользователь |
Пользователь отправляет сообщение |
Основной |
|
Запрос к БД |
Вывод запрошенных данных |
Система |
Конечным результатом данного ВИ является выведенные на экран запрошенные пользователем данные |
Вспомогательный |
|
Сохранение данных в БД |
Сохранить данные в БД |
Система |
Перед сохранением данных в БД, они должны быть обработаны (удаление спец.символов) чтобы не нарушить целостность БД |
Вспомогательный |
Диаграмма вариантов использования приложения представлена на рисунке 1.
Рисунок 1 - Диаграмма вариантов использования приложения
Модульная структура программы
Модульная структура программы представлена на рисунке 2.
Рисунок 2 - Модульная структура программы.
Спецификация на программные модули
Имя модуля - index.php;
Имя вызывающего модуля - chrome.exe;
Выполняемые функции - вывод сообщений чата;
Входные данные - Строки;
Выходные данные - Строки;
Особенности, ограничения:
Выводятся только 20 последних сообщений чата.
Имя модуля -registration.php;
Имя вызывающего модуля - index.php;
Выполняемые функции - регистрация пользователей;
Входные данные - логин и пароль;
Выходные данные - нет;
Особенности, ограничения:
Шифрование паролей выполняется по алгоритму md5 с помощью встроенных средств php.
Имя модуля -authorization.php;
Имя вызывающего модуля - index.php;
Выполняемые функции - авторизация пользователей;
Входные данные - логин и пароль;
Выходные данные - нет;
Особенности, ограничения: нет.
Имя модуля - sendmessage.php;
Имя вызывающего модуля - registration.php, authorization.php;
Выполняемые функции - отправка сообщения;
Входные данные - текст сообщения, логии адресата;
Выходные данные - нет;
Особенности, ограничения: нет.
Результаты работы программы на примерах
На рисунках 3-5 представлены результаты работы программы. На рисунке 3 отображена форма регистрации.
Рисунок 3 - Форма регистрации.
В случае если при регистрации пользователь вводит уже используемое имя сайт выдает сообщение об ошибке.
Рисунок 4 - Неудачная попытка регистрации.
На рисунке 5 представлен результат обмена сообщениями 2х пользователей.
Рисунок 5 - Результат обмена сообщениями 2х пользователей.
серверный программа алгоритм шифрование
Приложение
А. Текст программы
Index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
<link href="style.css" rel="stylesheet" type="text/css">
<title>Main</title>
</head>
<body>
<table width="690" border="0" align="center" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<tr>
<td><table width="690" border="1">
<tr>
<!--Подключаем левый блок сайта-->
<td width="499">
<textarea name="description" id="description" cols="50" rows="5"></textarea>
<p>
<input id="load" value="Insert text" type="text" />
<input id="load" value="Send" type="submit" onclick="callServer();" />
</p>
</p></td>
</tr>
</table></td>
</tr>
<!--Подключаем футер-->
</table>
</body>
<script type="text/javascript" src="jquery1.js"></script>
</html>
Registration.php
<?php
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
$query = mysql_query("SELECT * FROM `users` WHERE `login`='".$_POST['login']."'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if(empty($_POST['login'])){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif($row > 0){ //если переменная больше 0
echo"Такой пользователь уже существует!"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}elseif(empty($_POST['password2'])){ //если переменная логина пуста или не существует
echo"Вы не ввели подтверждение пароля"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password2'])){ //если переменная не соответствует шаблону-a-zA-Z0-9
echo"Вы неправильно ввели подтверждение пароля"; // выводим сообщение об ошибке
}elseif($_POST['password'] != $_POST['password2']){ //если переменная пароля и переенная повтора пароля не одинаковы
echo"Вы неправильно ввели подтверждение пароля"; // выводим сообщение об ошибке
}elseif(empty($_POST['email'])){ //если переменная E-mail'a пуста
echo"Вы не ввели E-mail"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9_]{3,20}@[-a-zA-Z0-9]{2,64}\.[a-zA-Z\.]{2,9}/", $_POST['email'])){ //регулярка на проверку правильности email
echo"Вы неправильно ввели E-mail"; // выводим сообщение об ошибке
}else{ //если же ошибок нет
$login = $_POST['login']; //присваеваем переменную
$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
$email = $_POST['email'];//присваеваем переменную
$insert = mysql_query("INSERT INTO `users` (`login` ,`password` ,`email` ) VALUES ('$login', '$password', '$email')"); //выполняем запрос на добавление нового пользователя
if($insert == true){
echo "Вы успешно зарегистрированы!";
}else{
echo "Непредвиденная ошибка!";
}
}
}
?>
Authorization.php
<?php
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
if(empty($_POST['login'])){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$login = $_POST['login']; //присваеваем переменную
$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Вы успешно авторизовались!"; // выводим сообщение об удачной авторизации!
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
} } } ?>
Размещено на Allbest.ru
Подобные документы
Обзор основных используемых языков программирования (С++, Java, Pascal). Анализ существующих методов шифрования паролей. Основные понятия объектно-ориентированного программирования. Реализация приложения для генерирования паролей на языке Object Pascal.
курсовая работа [822,4 K], добавлен 07.07.2012Особенности настройки корпоративной сети предприятия. Разработка приложения, обеспечивающего эффективную работу клиент-серверной сети железнодорожной кассы. Защита от несанкционированного доступа, специфика шифрования паролей и ряд других средств защиты.
курсовая работа [5,9 M], добавлен 30.01.2014Разработка программы на языке Visual Basic. Спецификация на программный модуль. Ввод, изменение и удаление данных по определенным требованиям. Руководство системного программиста, программиста и оператора. Ведение базы данных в виде таблицы Excel.
курсовая работа [272,5 K], добавлен 21.04.2014Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.
курсовая работа [3,9 M], добавлен 18.01.2017Хранение данных в зашифрованном виде как прекрасный способ защитить информацию, чтобы она не попала к злоумышленнику, технические вопросы и проблемы данного процесса. Учетные записи и аутентификация. Шифрование данных и паролей в Linux. Теневые пароли.
курсовая работа [255,6 K], добавлен 07.02.2012Кодирование и декодирование, преобразование дискретного сообщения в дискретный сигнал. Построение математической модели корректирующего кода. Образующая матрица информационного кода. Модульная структура программы. Спецификация на программные модули.
курсовая работа [98,9 K], добавлен 28.11.2014Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.
курсовая работа [812,6 K], добавлен 27.03.2012Аспекты безопасности информации, предотвращение внедрения программных закладок. Проектирование и разработка программы шифрования данных по заданной таблице из 160 символов. Дешифровка и вывод результата приложения. Его программный код и тестирование.
курсовая работа [163,1 K], добавлен 05.05.2016Краткая характеристика библиотек: stdio.h, conio.h, string.h, stdafx.h. Шифр Плейфера как подстановка символов из таблицы, основные варианты. Структура программы playfer.exe. Создание таблицы перекодировки. Ввод, шифрование и дешифрование текста.
курсовая работа [216,7 K], добавлен 18.05.2013Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.
курсовая работа [1,2 M], добавлен 16.08.2012