Шифрование методом Цезаря
Шифр Цезаря реализует кодирование фразы путем «сдвига» всех букв фразы на определенное число n (в оригинальном шифре Цезаря число n равнялось 3). Если буква кодируемой фразы имеет в алфавите позицию j, то она в "шифровке" будет заменяться буквой, находящейся в алфавите на позиции j + n.
Для кодирования и декодирования текста данным методом используются функции:
const
n = 3;
function CaesarEncipher(toCode: string): string;
var i, T: integer;
begin
for i := 1 to length(toCode) do begin
T := (Ord(toCode[ i ]) + n);
if T >= 256 then dec(T, 256);
toCode[ i ] := Chr(T);
end;
CaesarEncipher := toCode;
end;
function CaesarDecipher(toDecode: string): string;
var i, T: integer;
begin
for i := 1 to length(toDecode) do begin
T := (Ord(toDecode[ i ]) - n);
if T < 0 then Inc(T, 256);
toDecode[ i ] := Chr(T);
end;
CaesarDecipher := toDecode;
end;
{ применение: }
var
s: string;
begin
s := CaesarEncipher('just a Caesar');
writeln(s);
writeln('s = ', CaesarDecipher(s));
end.
Комментарии:
Нету комментариев для вывода...