Шифрование с помощью кода Цезаря

Шифр Цезаря - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется буквой находящейся на некоторое постоянное число позиций левее или правее него в алфавите. Например, в шифре со сдвигом 3, А была бы заменена на Г, Б станет Д, и так далее.

code: #delphi
  1. function Cesar(Key:Integer; S:String; Decode:Boolean):String;
  2. var
  3.   i:Integer;
  4.   st:String;
  5. begin
  6.   st:=S;
  7.   if Decode then Key:=-Key;
  8.   for i:=1 to Length(S) do
  9.     st[i]:=Chr((Ord(S[i])+Key));
  10.   Result:=st;
  11. end;
  12. //Шифровка
  13. procedure TForm1.Button1Click(Sender: TObject);
  14. var
  15.   i,Key:Integer;
  16. begin
  17.   Key:=StrToInt(Edit1.Text); //Ключ вводим в Edit1
  18.   for i:=0 to Memo1.Lines.Count-1 do
  19.     Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],False);
  20. end;
  21. //Расшифровка
  22. procedure TForm1.Button2Click(Sender: TObject);
  23. var
  24.   i,Key:Integer;
  25. begin
  26.   Key:=StrToInt(Edit1.Text);
  27.   for i:=0 to Memo1.Lines.Count-1 do
  28.     Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],True);
  29. end;
Поделиться:

Похожие статьи: