Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
27.04.2015
Размер:
2 Кб
Скачать
☆


    program avto;
    uses WinCrt,Windos;

     var
     i,j,k,m,nb:integer;
     f1,f2:file;
     numf1,numf2:string;
     nr,nw:word; {county}
     buf1,buf2,buf3:array[1..100]of shortint;
     bf:char;
     const
     kluch:array[0..9] of integer=(5,8,12,54,3,9,77,44,32,88);
     begin
       {$I-}

       writeln('программа шифрования  по автоключу');
       writeln('введите имя шифруемого файла');
       readln(numf1);

       assign(f1,numf1);
       reset(f1,1);
       writeln('файл открыт');

       writeln('введите имя зашифрованного файла');
       readln(numf2);
       assign(f2,numf2);
       rewrite(f2,1);
         writeln('введите ключ – строку из десяти символов');
        for i:=0 to 9 do kluch[i]:=ord(readkey);
       writeln;writeln('ваш ключ ');
        for i:=0 to 9 do write(chr(kluch[i]),' ');
        writeln;

	 
         nb:=1;
       repeat
	    blockread(f1,buf1,sizeof(buf1),nr);
	    {writeln('количество блоков в исходном файле',nr);}

	    for i:=1 to nr do
	      begin
                if nb=1 then begin
                               buf2[i]:=buf1[i] xor kluch[i mod 10];
                             end;
                if nb>1 then begin
                               buf2[i]:=buf1[i] xor buf3[i];
                             end;
                    buf3[i]:=buf1[i];
	      end;


	    blockwrite(f2,buf2,nr,nw);
	    {writeln('количество блоков в зашифрованном файле',nw);}
            nb:=nb+1;
	    until (nr=0) or (nw<>nr);

       close(f1);
       close(f2);
writeln(' файл зашифрован ');
      {$I+}
     end.
Соседние файлы в папке лаб-р-защ-3