Лабораторная работа №2
Шифр Вижинера
Вариант №1
Выполнила:
студентка группы 08-АС
Смирнова А.А.
Цель работы: изучение способа шифрования с помощью шифра Вижинера.
Номер варианта |
Ключ |
1 |
Sahufwlkgv |
С помощью программы VIGIN.exe был зашифрован файл D2.doc ключом Sahufwlkgv и получен файл D2_s.doc. С помощью этого же ключа расшифрован зашифрованный файл D2_s.doc, получен файл D2_sh.doc.
Программа шифрования по Вижинеру:
program VIGIN; {программа шифрования по Вижинеру}
uses WinCrt,Windos;
var
i,j,k,m:integer;
f1,f2:file;
numf1,numf2:string;
nr,nw:word;
buf1,buf2:array[1..2048]of char;
bf:char;
kluch:array[1..10] of char;
begin
{$I-}
writeln(' программа шифрования файла по вижинеру ');
writeln('введите имя шифруемого файла ');
readln(numf1);
assign(f1,numf1); readln;
reset(f1,1);
writeln('файл открыт');
writeln('введите имя зашифрованного файла');
readln(numf2);
assign(f2,numf2); readln;
rewrite(f2,1);
writeln('введите ключ – строку из десяти символов');
for i:=1 to 10 do kluch[i]:=readkey;
writeln;writeln('ваш ключ ');
for i:=1 to 10 do write(kluch[i]);
writeln;
repeat
blockread(f1,buf1,sizeof(buf1),nr);
for i:=1 to nr div 10 do
begin
for j:=1 to 10 do
begin
k:=10*(i-1)+j;
m:=(ord(buf1[k])+ord(kluch[j])) mod 256;
buf2[k]:=chr(m);
end;
end;
blockwrite(f2,buf2,nr,nw);
until (nr=0) or (nw<>nr);
close(f1);
close(f2);
writeln('файл зашифрован')
{$I+}
end.