Шифр изобрел греческий писатель и историк Полибий. Прямоугольная таблица заполняется буквами алфавита в случайном порядке. Каждая буква открытого сообщения заменяется буквой, расположенной ниже в том же столбце. Если буква находится на последней строке таблицы, то для ее шифрования берут самую верхнюю букву столбца.
У | К | В | Ъ | М | Ю | Ь | Д |
И | Б | Т | Л | Э | Г | Щ | Н |
С | Ф | З | Ы | П | Ц | Е | Я |
А | Р | Х | Ж | Ш | О | Ч |
Delphi 7.0
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ComCtrls, AppEvnts;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Button1: TButton;
Edit4: TEdit;
Label2: TLabel;
Label3: TLabel;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
var i,k,y:integer;
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var z,i,j:integer;
a:string;
begin
a:=edit1.Text;
for z:=1 to length(a) do begin
for i:=0 to 7 do
for j:=0 to 3 do
begin
if stringgrid1.cells[i,j]=a[z] then
begin
if j<>3 then edit4.Text:=edit4.Text+stringgrid1.cells[i,j+1] else edit4.Text:=edit4.Text+stringgrid1.cells[i,0];
end;
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i,i1,j1,j2,j3,j4:integer;
r1,r2,r3,r4:string[8];
begin
randomize();
i1:=7;
r1:='АБВГДЕЖЗ';
r2:='ИКЛМНОПР';
r3:='СТУФХЦЧШ';
r4:='ЩЪЫЬЭЮЯ ';
for i:=0 to 7
do
begin
j1:=random(i1);StringGrid1.Cells[i,0]:=r1[j1+1];delete(r1,j1+1,1);
j2:=random(i1);StringGrid1.Cells[i,1]:=r2[j2+1];delete(r2,j2+1,1);
j3:=random(i1);StringGrid1.Cells[i,2]:=r3[j3+1];delete(r3,j3+1,1);
j4:=random(i1);StringGrid1.Cells[i,3]:=r4[j4+1];delete(r4,j4+1,1);
i1:=i1-1;
end;
end;
end.