Шифрование с помощью кода Цезаря
Категория: Delphi/Pascal
2011-08-26 21:45:43
Шифр Цезаря - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется буквой находящейся на некоторое постоянное число позиций левее или правее него в алфавите. Например, в шифре со сдвигом 3, А была бы заменена на Г, Б станет Д, и так далее.
code: #delphi
- function Cesar(Key:Integer; S:String; Decode:Boolean):String;
- var
- i:Integer;
- st:String;
- begin
- st:=S;
- if Decode then Key:=-Key;
- for i:=1 to Length(S) do
- st[i]:=Chr((Ord(S[i])+Key));
- Result:=st;
- end;
- //Шифровка
- procedure TForm1.Button1Click(Sender: TObject);
- var
- i,Key:Integer;
- begin
- Key:=StrToInt(Edit1.Text); //Ключ вводим в Edit1
- for i:=0 to Memo1.Lines.Count-1 do
- Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],False);
- end;
- //Расшифровка
- procedure TForm1.Button2Click(Sender: TObject);
- var
- i,Key:Integer;
- begin
- Key:=StrToInt(Edit1.Text);
- for i:=0 to Memo1.Lines.Count-1 do
- Memo1.Lines[i]:=Cesar(Key,Memo1.Lines[i],True);
- end;
Поделиться: