BEGIN repeat
begin
ClrScr;
writeln ('Програма шифровки і дешифрування тексту! ');
writeln;
writeln ('1. Шифрувати текст ');
writeln ('2. Дешифрувати текст ');
writeln ('3. Вихід ');
writeln;
write ('Виберіть пункт меню:');
readln (men);
case men of
1: CryptP;
2: DecryptP;
end;
end;
until men = 3;
END;
При виборі першого пункту меню викликається процедура шифрування тексту ( PROCEDURE CryptP; ). Дана процедура створює інтерфейс для введення імені файлу, який необхідно зашифрувати і ключа. Після введення імені файлу і ключа даний файл відкривається (при допомоги команди Assign ) і весь текст з нього записується в змінну Line . Також створюємо другий файл в який буде записаний результат роботи (цей файл буде мати ім'я crypter.txt). Потім викликається функція Crypt і їй передається значення змінної Line . Після завершення роботи функції зашифрований текст зберігається в новоствореному файлі. Закриваємо обидва відкритих файлу за допомогою оператора Close .
PROCEDURE CryptP;
BEGIN
writeln;
write (' Введіть шлях і ім'я файлу : ');
readln (FileName);
write (' Введіть ключ :');
readln (PassW);
Assign (F, FileName);
Assign (F1, 'crypter.txt');
Rewrite (F1);
Reset (F);
while not EOF (F) do
begin
readln (F, Line);
line: = crypt (line);
writeln (F1, line);
end;
writeln;
writeln ('Файл успішно зашифрований! ');
Close (F);
Close (F1);
writeln;
write ('Натисніть будь-яку клавішу ... ');
ReadKey;
END;
При виборі другого пункту меню викликається процедура дешифрування тексту ( PROCEDURE DecryptP; ). Робота цієї процедури аналогічна роботі процедури CryptP , за одним лише винятком, ми викликаємо функцію Decrypt замість функції Crypt .
PROCEDURE DecryptP;
BEGIN
writeln;
write (' Введіть шлях і ім'я файлу : ');
readln (FileName);
write (' Введіть ключ :');
readln (PassW);
Assign (F, FileName);
Assign (F1, 'crypter.txt');
Rewrite (F1);
Reset (F);
while not EOF (F) do
begin
readln (F, Line);
line: = decrypt (line);
writeln (F1, Line);
end;
writeln;
writeln ('Файл успішно розшифрований! ');
Close (F);
Close (F1);
writeln;
write ('Натисніть будь-яку клавішу ... ');
ReadKey;
END;
При виборі третього пункту меню програма завершує свою роботу.
Опис вхідних і вихідних даних.
При шифруванні тексту вхідними даними є файл, що містить будь-який текст. А вихідними даними буде файл, що містить зашифрований текст, який створюється в папці в якої розташована дана програма, цей файл буде мати ім'я В«crypter.txtВ».
При дешифрування тексту вхідними даними є файл, що містить зашифрований текст. А вихідними даними буде файл, що містить розшифрований текст, який буде створений в папці в якій розташована дана програма, цей файл буде мати ім'я В«crypter.txtВ».
В
Висновок.
Дана програма продемонструвала гарну працездатність. Має високий ступінь захисту зашифрованого тексту, без ключа такий текст розшифрувати досить складно, навіть знаючи алгоритм шифрування. У даної програми є один значний недолік - розмір зашифрованого файлу збільшується в порівнянні з вихідним приблизно в 3 рази.
Список літератури.
1. В«Основи алгоритмізації та програмування В», Є. М. Сафьянова, навчальний посібник, Томськ, 2000
В
Додаток 1. Лістинг програми.
PROGRAM Crypter;
USES crt;
<...