49453 (Шифрувальник та дешифрувальник)

2016-07-30СтудИзба

Описание файла

Документ из архива "Шифрувальник та дешифрувальник", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49453"

Текст из документа "49453"

Міністерство вищої освіти України

Запорізький Національний Технічний Університет

ПОЯСНЮВАЛЬНА ЗАПИСКА ДО КУРСОВОГО

ПРОЄКТУ З ДИСЦИПЛІНИ “ОП та АМ”

Шифрувальник та дешифрувальник

2003

РЕФЕРАТ

Об’єкт дослідження – вивчення середи програмування TURBO PASCAL 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 середовища компілятора TURBO PASCAL 7.0 .

Стандартне перебування ПК після включення, а також у момент запуску відкомпільованої програми відповідає роботі екрана у текстовому режимі, тому програма ініціалізує графічний режим роботи дисплею адаптера. Після роботи програми ПК вертається в текстовий режим.

Текст програми

Uses CRT,GRAPH;

label a;

var gd,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 – Файл, який містить розшифровану інформації

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее