|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2009, 10:21 | #1 |
Регистрация: 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. заранее спасибо всем кто откликнется. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как просчитать хэш файла? | 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 |