Xor шифрование - Pascal
Формулировка задачи:
Доброго времени суток! Нужно написать программу xor шифрования строки другой строкой. Строка, которая будет шифроваться, вводится с клавиатуры, далее вводится ключ. Допустим строка "Привет Мир" и ключ "басков" должно получиться "басковбаск".
Решение задачи: «Xor шифрование»
textual
Листинг программы
procedure codec(var s: string; key: string); var i, j: integer; begin if length(key) > 0 then begin j := 1; for i := 1 to length(s) do begin s[i] := char(byte(s[i]) xor byte(key[j])); inc(j); if j > length(key) then j := 1 end end else writeln('Ошибка: нулевая длина ключа.') end; var str, keystr: string; begin writeln('Введите строку:'); readln(str); writeln('Введите ключ:'); readln(keystr); writeln('Закодированная строка:'); codec(str, keystr); writeln(str); writeln('Раскодированная строка:'); codec(str, keystr); writeln(str); readln end.
Объяснение кода листинга программы
- Объявление процедуры
codec
с параметрамиs
иkey
типа string - Объявление переменных
i
иj
типа integer - Проверка условия: если длина ключа (переменная
key
) больше нуля, то выполняется следующий блок кода - Установка начального значения переменной
j
равным 1 - Цикл от 1 до длины строки
s
- Внутри цикла каждый символ строки
s
изменяется посредством операции XOR (исключающее ИЛИ) с символом ключаkey
, перемещаясь по ключу в циклическом порядке - Если индекс
j
превышает длину ключа, то он возвращается к начальному значению - Если длина ключа равна 0, выводится сообщение об ошибке
- Объявление переменных
str
иkeystr
типа string - Ввод строки с клавиатуры и сохранение в переменную
str
- Ввод ключа с клавиатуры и сохранение в переменную
keystr
- Вывод строки
Закодированная строка:
- Вызов процедуры
codec
для закодирования строки с использованием ключа - Вывод закодированной строки
- Вывод строки
Раскодированная строка:
- Вызов процедуры
codec
для раскодирования строки с использованием ключа - Вывод раскодированной строки
- Ожидание ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д