Название: Шифрувальник та дешифрувальник
Вид работы: курсовая работа
Рубрика: Информатика и программирование
Размер файла: 129.65 Kb
Скачать файл: referat.me-139838.docx
Краткое описание работы: Створення програми в середовищі програмування TURBO PASCAL 7.0, за допомогою якої можливо здійснювати шифровку та розшифровку інформації у файлах з розширенням doc, txt. Програма працює з машинописом англійського тексту, який відповідає стандартам ASCII.
Шифрувальник та дешифрувальник
Міністерство вищої освіти України
Запорізький Національний Технічний Університет
ПОЯСНЮВАЛЬНА ЗАПИСКА ДО КУРСОВОГО
ПРОЄКТУ З ДИСЦИПЛІНИ “ОП та АМ”
Шифрувальник та дешифрувальник
2003
РЕФЕРАТ
Об’єкт дослідження – вивчення середи програмування TURBOPASCAL 7.0 на прикладі створення програми.
Мета роботи – написати програму, за допомогою якої можливо було б шифрувати інформацію та розпізнавати шифровану.
Програма працює з машинописом англійського тексту, який відповідає стандартам ASCII. Кирилиця програмою розпізнається не чітко, завдяки розходженню її кодування зі стандартами ASCII.
Програма може здійснювати шифровку та розшифровку інформації,яка знаходиться у файлах з розширенням .doc , .txt .
Принцип дії – це зміна коду символу за мировим стандартом завдяки ключу, який має знати лише користувач. Цей числовий ключ і буде зміщенням коду символів. Він не повинен бути кратним 256, тобто він не повинен приймати значення 0, 256, 512 та інші.
Простий і наглядний інтерфейс програми лише полегшує її використання.
ЗМІСТ
Реферат
Варіанти кодування знакогенераторів ПК
Робота з програмою, її інтерфейс
Основні процедури і їх функції
Текст програми
Рисунок 1.1 – Меню програми
Рисунок 1.2 – Файл, який шифрується програмою
Рисунок 1.3 – Шифрування інформації програмою
Рисунок 1.4 – Файл, який містить зашифровану інформацію
Рисунок 1.5 – Розшифровка інформації програмою
Рисунок 1.6 – Файл, який містить розшифровану інформації
Варіанти кодування знакогенераторів ПК
Стандартний знакогенератор ПК ІВМ складається з двох частин: символи з кодами від 0 до 127, утворюючі першу половину символів знакогенератора, будуються за стандартом ASCII і однакові на всіх ІВМ – сумісних ПК. Друга половина символів (коди 128...255) можуть відрізнятись на ПК різного типу. У стандартному знакогенераторі фірми ІВМ символи псевдографіки займають три суміжні області (коди 176...223). Область з кодами від 128 до 175 та від 224 до 239 використовується для розміщення деяких символів національного алфавіту різних європейських мов, а остання (коди 240...255) – для розміщення спеціальних знаків. З розрахунку цього рас положення символів розроблюється подальша множина програм зарубіжного походження.
Стандартний вітчизняний знакогенератор будується на рекомендаціях Міжнародного Консультаційного Комітету По Телеграфії і Телефонії (МККТТ). Розміщення символів у другій половині таблиці цього знакогенератору різко відрізняється від прийнятої фірмою ІВМ, що затрудняє користування зарубіжного програмного забезпечення на вітчизняних ПК. У зв’язку з цим, стандартний (ГОСТовий ) варіант кодування часто замінюється альтернативним, головна риса якого – розміщення символів псевдографіки ні тих же місцях, що й в знакогенераторі ІВМ. Недолік такого знакогенератора міститься у тому, що символи Кирилиці утворюють розривний масив. Саме на цей варіант розраховані всі програми вітчизняного виробництва. Він став фактичним стандартом для зарубіжних фірм, які виготовляють ПК для експорту до нашої країни.
Робота з програмою, її інтерфейс
Для початку роботи з програмою необхідно запустити її, клацнувши два рази лівою кнопкою миші по ярлику KYRSOVIK.BAT . Після цього на екрані монітора з’явиться меню програми (Рисунок 1.1 – Меню програми, с.).
Клавішами “догори” і “донизу”необхідно вибрати дію, яку буде виконувати програма: “Шифровка Информации”, “Расшифровка Информации” або “Выход”.
При виборі “Шифровка Информации” з’явиться запит на параметри, які повинні бути введені (Рисунок 1.3 – Шифрування інформації програмою, с.): файл, інформацію якого буде шифрувати програма (Рисунок 1.2 – Файл, який шифрується програмою, с.), файл, який буде містити шифровану інформацію та код шифрування. Шифрована інформація буде міститись в текстовому файлі (Рисунок 1.4 – Файл, який містить зашифровану інформацію). Після введення цих даних з’явиться заново меню.
При виборі “Расшифровка Информации” з’явиться вікно
(Рисунок 1.5 – Розшифровка інформації програмою, с. ), у якому повинні бути введені файл, інформацію якого потрібно розшифрувати , файл, в який буде поміщена розшифрована інформація (Рисунок 1.6 – Файл, який містить розшифровану інформації) та відповідний код шифрування.
При виборі “Выход”програма завершує свою роботу.
Основні процедури і їх функції
Алгоритм програми складається з роботи двох процедур: процедури шифрування (Zashifr) і дешифрування (Racshifr).
В процедурі Zashifr (сторінки 7, 13) вказується путь розташування (name_otkyda) файла (f), інформацію якого необхідно зашифрувати, та новій файл (f_new) і путь до нього (name_kyda), в який необхідно помістити зашифрований текст .
В строкову змінну (s) заноситься інформація файла, який шифрується, а потім ASCII код кожного символу цієї строкової змінної зміщується в сторону зростання на величину ключа коду (sdvig). Потім в іншу строкову змінну (ss) заносяться всі кодовані символи і ця змінна записується до файлу, який має містити шифрований текст.
В процедурі Racshifr (сторінки 8, 13) навпаки, код строкової змінної (s), в яку було занесено шифровану інформацію, зменшується на величину ключа коду (sdvig). І також інша строкова змінна (ss), яка вже буде містити розшифровану інформацію, поміститься вже у новий файл, який буде містити розкодовану інформацію.
Складання інтерфейсу будується на використанні стандартних модулів CRT і GRAPH середовища компілятора TURBOPASCAL 7.0 .
Стандартне перебування ПК після включення, а також у момент запуску відкомпільованої програми відповідає роботі екрана у текстовому режимі, тому програма ініціалізує графічний режим роботи дисплею адаптера. Після роботи програми ПК вертається в текстовий режим.
Текст програми
UsesCRT,GRAPH;
labela;
vargd,gm,k:integer;
ch:Char;
bool:boolean;
{--------------------------------------}
Procedure Zashifr;
var name_otkyda,name_kyda,s,st,ss:string;
f,f_new:text;
sdvig,i,j:integer;
begin
writeln(' Введите путь к текстовому файлу,');
writeln(' содержимое которого необходимо зашифровать:');
readln(name_otkyda);
assign(f,name_otkyda);
reset(f);
writeln(' Введите путь к текстовому файлу,');
writeln(' содержимое которого будет шифровкой предыдущего:');
readln(name_kyda);
assign(f_new,name_kyda);
rewrite(f_new);
writeln(' Введитесдвигкодасимвола:');
readln(sdvig);
writeln(' Результат шифровки данных:');
while not Eof(f) do
begin readln(f,s);
ss:='';
for i:=1 to length(s) do
begin
for j:=0 to 255 do
begin
if j=ord(s[i]) then
begin
st:=CHR(sdvig+j);
ss:=ss+st;
write(st);
end;
end;
end;
writeln;
writeln(f_new,ss);
ss:='';
end;
close(f);
close(f_new);
end;
{--------------------------------------}
Procedure Racshifr;
var name_otkyda,name_kyda,s,st,ss:string;
f,f_new:text;
sdvig,i,j:integer;
begin
writeln(' Введите путь к текстовому файлу,');
writeln(' содержимое которого необходимо расшифровать:');
readln(name_otkyda);
assign(f,name_otkyda);
reset(f);
writeln(' Введите путь к текстовому файлу,');
writeln(' содержимое которого будет расшифровкой предыдущего:');
readln(name_kyda);
assign(f_new,name_kyda);
rewrite(f_new);
writeln(' Введитесдвигкодасимвола:');
readln(sdvig);
writeln(' Результат расшифровки данных:');
while not Eof(f) do
begin
readln(f,s);
ss:='';
for i:=1 to length(s) do
begin
for j:=0 to 255 do
begin
if j=ord(s[i]) then
begin
st:=CHR(-sdvig+j);
ss:=ss+st;
write(st);
end;
end;
end;
writeln;
writeln(f_new,ss);
ss:='';
end;
close(f);
close(f_new);
end;
{--------------------------------------}
begin
clrscr;
bool:=false;
gd:=detect;
a: InitGraph(gd,gm,'');
clearDevice;
SetBkColor(9);
Rectangle(200,100,420,150);
SetFillStyle(1,6);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,8);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
Rectangle(200,300,420,350);
SetFillStyle(1,8);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
k:=3;
repeat ch:=readkey;
case ch of
#72:begin
k:=k+1;
if k=4 then k:=1;
case k of
3:begin
Rectangle(200,100,420,150);
SetFillStyle(1,6);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,8);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
Rectangle(200,300,420,350);
SetFillStyle(1,8);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
2:begin
Rectangle(200,100,420,150);
SetFillStyle(1,8);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,6);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
SetFillStyle(1,8);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
1:begin
Rectangle(200,100,420,150);
SetFillStyle(1,8);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,8);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
SetFillStyle(1,6);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
end;
end;
#80:begin
k:=k-1;
if k=0 then k:=3;
case k of
3:begin
Rectangle(200,100,420,150);
SetFillStyle(1,6);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,8);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
Rectangle(200,300,420,350);
SetFillStyle(1,8);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
2:begin
Rectangle(200,100,420,150);
SetFillStyle(1,8);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,6);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
SetFillStyle(1,8);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
1:begin
Rectangle(200,100,420,150);
SetFillStyle(1,8);
FloodFill(220,120,White);
OutTextXY(235,125,'ШифровкаИнформации');
Rectangle(200,200,420,250);
SetFillStyle(1,8);
FloodFill(220,220,White);
OutTextXY(225,225,'РасшифровкаИнформации');
SetFillStyle(1,6);
FloodFill(220,320,White);
OutTextXY(280,325,' Выход');
end;
end;
end;
#13:begin
case k of
3:begin
ClearDevice;
CloseGraph;
Zashifr;
readln;
goto a;
end;
2:begin
ClearDevice;
CloseGraph;
RacShifr;
readln;
goto a;
end;
1:begin
ClearDevice;
CloseGraph;
bool:=true;
end;
end;
end;
end;
until bool;
end.
ІЛЮСТРАЦІЇ
Рисунок 1.1 – Меню програми
Рисунок 1.2 – Файл, який шифрується програмою
Рисунок 1.3 – Шифрування інформації програмою
Рисунок 1.4 – Файл, який містить зашифровану інформацію
Рисунок 1.5 – Розшифровка інформації програмою
Рисунок 1.6 – Файл, який містить розшифровану інформації
Похожие работы
-
Автоматизований облік надходження, зберігання і збуту продукції на товарній базі
Розробка програми "товарна база", призначеної для збереження та перегляду, а також автоматизованої обробки інформації, що надає користувач. Формальна та неформальна постановка задачі. Структура зберігаючих даних. Вихідний код програми, її апробація.
-
Автоматизований облік власників автомобілей
Розробка програми "Авто" для введення та збереження інформації про власників та їхні автомобілі. Побудова математичної моделі. Критерії вибору та пошуку даних. Структура введених та збережених у файлах програми даних. Алгоритм основної програми та її код.
-
Автоматизований аналіз злочинності
Створення програми "Аналізатор злочинності в регіоні". Структура зберігаючих даних. Неформальна постановка задачі. Алгоритм основної програми. Введення і збереження інформації. Можливість перегляду всіх існуючих документів. Вихідний код програми.
-
Автоматизоване нарахування заробітної плати
Методика та особливості створення програми "Автоматизоване нарахування платні" для збереження, перегляду та аналізу введеної інформації, її алгоритм та вихідний код. Аналіз факторів, які впливають на формування заробітної платні робітника підприємства.
-
Програма HelloWin
Опрацювання роботи програми HelloWin, яка демонструє основні принципи створення вікна у OS Windows. Вивчення матеріалу, викладеного у файлі допомоги. Використання функцій для створення вікна, відображення у ньому тексту, відтворення звукових файлів.
-
Програма для тестування знань з дисципліни "Програмування на мові С"
Розробка програми, яка б дозволяла протестувати знання з дисципліни "Програмування на мові С", виставити оцінку. Опис та обґрунтування методу організації вхідних та вихідних даних, вибору складу технічних та програмних засобів. Проведення лістингу.
-
Мова програмування Pascal
Основні поняття мови програмування Паскаль, синтаксис. Поняття і види алгоритму; елементи, що використовуються при побудові описів програм: символи, слова, вирази, команди. Рекомендації щодо інсталяції. Вимоги до апаратного та програмного забезпечення.
-
Довідкова система по кримінальному праву
Створення довідкової системи по зменшенню витрат часу на здобуття інформації по кримінальному праву. Розробка алгоритму основної програми на мові програмування Turbo Pascal з підключенням модуля СRT, якій відповідає за графіку і DOS та працює з файлами.
-
База даних по приватним підприємствам регіону
Програма "Приватка" для збереження та перегляду всієї інформації, що стосується пошуку підприємства. Розробка алгоритму та програмування на мові Turbo Pascal. Формальна та неформальна постановка задачі. Структура зберігаючих даних. Вихідний код програми.
-
Аналіз методів введення обмежених обсягів текстової інформації
Характеристика дослідження методу введення обмежених обсягів текстової інформації в ЕОМ. Аналіз механізму розробки програми, що передбачає можливість запису текстової інформації до файлу, а також завантаження тексту з файлу. Порядок роботи з програмою.