Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2009, 10:21   #1
BlackThornGreed
 
Регистрация: 16.02.2009
Сообщений: 5
По умолчанию реализация шифрования. шифр Цезаря + Хэш-функция

приветствую всех.
вобшем такая у меня задача реализовать шифр цезаря и добавить к нему хэш функцию. цезаря я достал, а вот хэш функцию не понимаю с чем едят и как запихнуть. прошу помоши...

текст задачи

Написать программу шифрования и расшифрования текстового файла с использованием ключа. В качестве функции шифрования использовать шифр Цезаря. Добавить к зашифрованному тексту для проверки его целостности вычисленное значение хэш-функции h(M). Для этого к блокам длины 64 бит применить следующую процедуру: Н0= 0; Hi= Mi © Ни, i = 1,...N; h(M) - Z © MN0 L;
где M - исходный текст, N - число блоков, Z - сумма по модулю 2 всех блоков сообщения, L - сумма по модулю 2 всех блоков Н, (i = 1,...N), © - операция побитового сложения по модулю 2. Зашифрованное сообщение сохранить в отдельном файле в следующей форме: Ek(M), h(M).



var
f1,f2,f3:text;
s:char;

{1. открываем исходный файл
2. создаем новый файл
3. считываем символы из исходного файла и записываем новый символ со смещением
в новый файл
4. открываем зашифрованный файл и расшифровываем его в новый файл }
BEGIN
{1.}
{$I-}
assign(f1,'text1.txt');
reset(f1);
{$I+}
if ioresult<>0 then
begin
writeln('Создайте текстовый файл text1.txt и перезапустите программу');
readln;
halt;
end;
{2.}
assign(f2,'text2.txt');
rewrite(f2);
while not eof(f1) do
begin
{3.}
read(f1,s); {считываем один символ в s}
write(f2,chr(ord(s)+9)); {получаем код символа ord(s),
прибавляем к коду символа число 9,
записываем в файл f2 символ с кодом ord(s)+9)}
end;
close(f1);
close(f2);
writeln('Создан зашифрованный файл text2.txt');
writeln;
{4.}
reset(f2);
assign(f3,'text3.txt');
rewrite(f3);
while not eof(f2) do
begin
read(f2,s);
write(f3,chr(ord(s)-9));
end;
close(f2);
close(f3);
writeln('Создан расшифрованный файл text3.txt из зашифрованного файла text2.txt');
writeln;
readln;
END.

заранее спасибо всем кто откликнется.
BlackThornGreed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как просчитать хэш файла? ArtUrlWWW Общие вопросы .NET 1 27.05.2009 16:06
Хэш-поиск по базе данных Deimossy Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2009 17:58
Почему размер хэш-таблицы обязательно простое число? Zefick Помощь студентам 4 25.12.2008 13:42
Алгоритм Цезаря ***СкаЙ*** Помощь студентам 2 27.04.2007 02:40