
- •Содержание
- •Введение
- •1. Актуальность разработки
- •2. Постановка задачи
- •2.1. Шифрование
- •2.2. Математическая модель
- •3. Выбор программных средств
- •4. Разработка алгоритма программы
- •4.1. Обобщенная блок-схема программы
- •4.2. Описание алгоритма программы
- •5. Описание программы
- •5.1. Общие сведения
- •8.2. Мероприятия по охране безопасности жизнедеятельности
- •8.2.1. Эргономическое обеспечение рабочего места оператора.
- •8.2.2. Воздействие компьютера и внешней среды помещений
- •8.3. Разработка мер безопасности в помещениях с пэвм
- •8.3.1. Проблемы безопасности современных мониторов пэвм
- •8.3.2. Профессиональные заболевания при работе с дисплеем и клавиатурой
- •8.4. Пожарная безопасность
- •9. Технико-экономические расчеты
- •9.1. Стоимость разработки
- •9.2. Экономический эффект
- •9.3. Вывод
- •Заключение
- •Список использованной литературы
- •Аннотация
- •Оглавление
- •1. Назначение программы
- •2. Условия выполнения программы
- •3. Выполнение программы
- •4.Сообщения оператору
9.2. Экономический эффект
Экономический эффект может быть определён, как экономия на элементах производственных затрат, изменяющихся в связи с использованием программы. Это, в первую очередь, экономия на лицензии программы - БЕСПЛАТНО. Простой и удобный менеджер, имеет простой интерфейс. Ожидаемый экономический эффект, программа будет использована большим количеством пользователей.
9.3. Вывод
Результаты проведенного экономического исследования представлены в сводной таблице технико-экономических показателей.
Таблица 9.4. Сводная таблица технико-экономических показателей
На основе рассчитанных технико-экономических показателей разработанной программы можно сделать вывод о ее высокой экономической эффективности.
Заключение
В ходе дипломного проектирования были систематизированы и закреплены знания, полученные за все время обучения по специальности «Программное обеспечение вычислительной техники и автоматизированных систем» в колледже телекоммуникаций.
Представленный проект выполняет поставленную задачу руководителем. Все поставленные цели достигнуты. Путем простого метода шифрования (метод псевдослучайных перестановок ), были достигнуты цели, путем защиты, безопасности данных пользователей. А именно было сделано:
• Добавление название пароля,ключа;
• Сохранение данных вводимых пользователей в зашифрованном виде;
• Открытие файла, дешифрование содержимого хранящегося в текстовом файле;
В дальнейшем проект может получить развитие путем более сложного кодирования данных, что позволит более усложнить работы злоумышленников.
Список использованной литературы
Алгоритмы и методы [Электронный ресурс] : – Электрон. дан. – Илья Кантор, 2000-2012. – Режим доступа : http://algolist.manual.ru/, свободный. – Алгоритмы Методы Исходники.
Конахович Г.Ф., Климчук В.П., Паук С.М., Потапов В.Г. Защита информации в телекоммуникационных системах. – К.: «МК-пресс», 2005. - 248 с.
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++: пер. с англ. М.: Бином, СПб.: Невский диалект, 1998.
Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. – СПб: Питер, 2001. — 368 с.: ил. (Серия «Библиотека программиста»)
Исагулиев К.П. Справочник по криптологии. – Мн.: Новое знание, 2004.
Скляров В.А. Язык С++ и объектно-ориентированное программирование. М.: Высш.шк., 1997. — 478 с.
ПРИЛОЖЕНИЕ 1
Блок-схемы основных алгоритмов программы
Авторизация пользователя
ПРИЛОЖЕНИЕ 2
Текст программы
//---------------------------------------------------------------------------
// Оськина Валентина группа 592
// Дипломная работа по специальности "Программное обеспечение вычислительной техники и автоматизированных систем "
// Программа для шифрации и дешифрации данных "Шифратор данных"
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
String TForm1::encode(long lSize, long * lKey) //функция шифрации
{
long i, j;
String line, encstr;
char * text;
String temp;
text = (temp=Memo1->Text).c_str(); //считываем текст из поля ввода
for(i = 0; i < Memo1->Text.Length(); i += lSize) //обход шифруемых блоков
{
line = "";
for(j = 0; j < lSize; j++) //считваем очередной блок символов
line += text[i + j];
for(j = 0; j < lSize; j++) // осуществляем перестановку в очередном блоке символов
encstr += line[lKey[j]];
}
return encstr; //возвращаем зашифрованный текст
}
String TForm1::decode(long lSize, long * lKey) //функция дешифрации
{
long i, j;
String line, decstr;
char * text;
String temp;
text = (temp=Memo2->Text).c_str(); //считываем текст из поля ввода
decstr = Memo2->Text;
for(i = 0; i < Memo2->Text.Length(); i += lSize) //обход блоков шифра
{
for(j = 0; j < lSize; j++) //осуществляем обратную перестановку в очередном блоке символов
decstr[i + lKey[j]] = text[i + j];
}
return decstr; //возвращаем расшифрованный текст
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) //сохранение исходного текста в файл
{
if(SaveDialog1->Execute())
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton3Click(TObject *Sender) //сохранение зашифрованного текста в файл
{
if(SaveDialog2->Execute())
Memo2->Lines->SaveToFile(SaveDialog2->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) //открытие файла с исходным текстом
{
if(OpenDialog1->Execute())
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton4Click(TObject *Sender) //открытие файла с шифром текстом
{
if(OpenDialog2->Execute())
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->CreateForm(__classid(TPasswordDlg), &PasswordDlg); //создаем форму ввода пароля
if(PasswordDlg->ShowModal()!=mrOk||!PasswordDlg->valid) //если пароль не введен либо введен неверно
Application->Terminate(); //выходим из приложения
PasswordDlg->Free(); //удаляем из памяти объект формы ввода пароля
SaveDialog1->InitialDir=GetCurrentDir(); //устанавливаем папку по умолчанию
OpenDialog1->InitialDir=GetCurrentDir(); //для диалогов
SaveDialog2->InitialDir=GetCurrentDir(); //открытия и сохранения
OpenDialog2->InitialDir=GetCurrentDir(); //файлов
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) //кнопка "зашифровать"
{
if(Memo1->Text!="") //если сообщение введено
{
if(MaskEdit1->Text!=" ") //если ключ введен
{
long lKey[5];
long key=StrToInt(MaskEdit1->Text); //считываем ключ в виде пятизначного целого
long i, lSize= sizeof(lKey)/sizeof(lKey[0]); //длина ключа
long S=pow(10,lSize-1);
for(i=0;i<5;i++) //сохраняем ключ в виде 5 целых чисел от 1 до 5
{
lKey[i]=key/S;
key%=S;
S/=10;
}
Memo2->Text = encode(lSize, lKey); //выводим результат шифрации
}
else MessageDlg("Внимание!\nВведите ключ!", mtError, TMsgDlgButtons() << mbOK, 0);
}
else MessageDlg("Внимание!\nВведите сообщение!", mtError, TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) //кнопка "расшифровать"
{
if(Memo2->Text!="")
{
if(MaskEdit1->Text!=" ")
{
long lKey[5];
long key=StrToInt(MaskEdit1->Text);
long i, lSize= sizeof(lKey)/sizeof(lKey[0]);
long S=pow(10,lSize-1);
for(i=0;i<5;i++)
{
lKey[i]=key/S;
key%=S;
S/=10;
}
Memo1->Text = decode(lSize, lKey);
}
else MessageDlg("Внимание!\nВведите ключ!", mtError, TMsgDlgButtons() << mbOK, 0);
}
else MessageDlg("Внимание!\nВведите сообщение!", mtError, TMsgDlgButtons() << mbOK, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaskEdit1KeyPress(TObject *Sender, char &Key)
{
if(!((Key>=49&&Key<=53)||(Key>=97&&Key<=101)||Key==8||Key==46)) //в поле ввода ключа можно ввести только числа от 1 до 5
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton5Click(TObject *Sender) //очистка поля ввода
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton6Click(TObject *Sender) //очистка поля ввода
{
Memo2->Clear();
}
ПРИЛОЖЕНИЕ 3
Результаты тестирования
Результаты тестирования
Тестирование методом «черного ящика»
Таблица 3.Тестирование программы на мониторах разного разрешения