Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 19:12   #1
venomdanger
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 14
По умолчанию Программа-Шифратор

Пишу программу-шифратор. Файлы шифрует, а расшифровать не может. можете глянуть программный код и доделать прогу?!

Код:
type
 m1=array[1..255,1..2] of integer;
 m2=array[1..255,1..255] of byte;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure sort(s:string;var st1:string);
var
   k:integer;
   i:integer;
   changed:boolean;
   buf:char;
   stcol1:integer;
begin
  st1:=s;
  stcol1:=length(st1);
    repeat
       changed:=FALSE;
       for k:=1 to stcol1-1 do
           if st1[k] > st1[k+1] then
              begin
	        buf := st1[k];
	        st1[k] := st1[k+1];
	        st1[k+1] := buf;
                changed := TRUE;
             end;
    until not changed;
end;

procedure soot(st1,st2:string; var q:m1);
var
  i,j:integer;
begin
for i:=1 to length(st1) do
  q[i,1]:=i;
 for i:=1 to length(st1) do
  begin
   j:=1;
   while st1[i]<>st2[j] do
     inc(j);
   q[i,2]:=j;
   st2[j]:=#0;
  end;
end;

Procedure change1(a1:m2;n1,n2:integer;var a2:m2);
var
 q:byte;
 i:integer;
Begin
  for i:=1 to length(form1.LabeledEdit3.Text)do
      begin
        q:=a1[i,n1];
        a1[i,n1]:=a1[i,n2];
        a1[i,n2]:=q;
      end;
  a2:=a1;
end;

Procedure change2(a1:m2;n1,n2:integer;var a2:m2);
var
 q:byte;
 i:integer;
Begin
  for i:=1 to length(form1.LabeledEdit4.Text)do
      begin
        q:=a1[i,n1];
        a1[i,n1]:=a1[i,n2];
        a1[i,n2]:=q;
      end;
      a2:=a1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Form1.OpenDialog1.Execute then
  form1.LabeledEdit1.Text:=Form1.OpenDialog1.FileName;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if Form1.SaveDialog1.Execute then
  form1.LabeledEdit2.Text:=Form1.SaveDialog1.FileName;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
 i,j,size,q,block:integer;
 f1,f2:file of byte;
 a:array[0..65524] of byte;
 s1,s2,s3:string;
 mas1,mas2:m1;
 aa:m2;
begin
if (form1.LabeledEdit3.Text='')or (form1.LabeledEdit4.Text='')or
(form1.LabeledEdit1.Text='')or (form1.LabeledEdit2.Text='')then
  begin
   showmessage('Не выбраны используемые файлы или не введены ключи!'+#10#13
   +' Процесс не быдет выполнен!');
   exit;
  end;
    s3:=form1.LabeledEdit1.Text;
    AssignFile(f1,form1.LabeledEdit1.Text);
    AssignFile(f2,form1.LabeledEdit2.Text);
    reset(f1);
    rewrite(f2);
    block:=length(form1.LabeledEdit3.Text)*length(form1.LabeledEdit4.Text);
      while not eof(f1) do
        begin
          if (fileSize(s3)-filepos(f1))>=block then
            size:=block
          else
            size:=(fileSize(s3)-filepos(f1));
 blockread(f1,aa,size,q);
 for i:=1 to length(form1.LabeledEdit3.Text) do
   for j:=1 to length(form1.LabeledEdit4.Text)do
    a[i]:=aa[i,j];
 Sort(form1.LabeledEdit3.Text,s1);
 Soot(form1.LabeledEdit3.Text,s1,mas1);
   for i:=1 to length(form1.LabeledEdit3.Text) do
    change1(aa,mas1[i,1],mas1[i,2],aa);
 Sort(form1.LabeledEdit4.Text,s2);
 Soot(form1.LabeledEdit4.Text,s2,mas2);
   for j:=1 to length(form1.LabeledEdit4.Text) do
    change2(aa,mas1[j,1],mas1[j,2],aa);
blockwrite(f2,a,size,q);
end;
closefile(f2);
CloseFile(f1);
showmessage('Шифрование завершено!');
end;

procedure TForm1.Button4Click(Sender: TObject);
var
 i,j,size,q,block:integer;
 f1,f2:file of byte;
 a:array[0..65524] of byte;
 s1,s2,s3:string;
 mas1,mas2:m1;
 aa:m2;
begin
if (form1.LabeledEdit3.Text='')or (form1.LabeledEdit4.Text='')or
(form1.LabeledEdit1.Text='')or (form1.LabeledEdit2.Text='')then
  begin
   showmessage('Не выбраны используемые файлы или не введены ключи!'+#10#13
   +' Процесс не быдет выполнен!');
   exit;
  end;
    s3:=form1.LabeledEdit1.Text;
    AssignFile(f1,form1.LabeledEdit1.Text);
    AssignFile(f2,form1.LabeledEdit2.Text);
    reset(f1);
    rewrite(f2);
    block:=length(form1.LabeledEdit3.Text)*length(form1.LabeledEdit4.Text);
      while not eof(f1) do
        begin
          if (fileSize(s3)-filepos(f1))>=block then
            size:=block
          else
            size:=(fileSize(s3)-filepos(f1));
 blockread(f1,a,size,q);
  for i:=1 to length(form1.LabeledEdit3.Text) do
   for j:=1 to length(form1.LabeledEdit4.Text)do
     aa[i,j]:=a[i];
 Sort(form1.LabeledEdit4.Text,s2);
 Soot(form1.LabeledEdit4.Text,s2,mas2);
   for j:=1 to length(form1.LabeledEdit3.Text) do
    change2(aa,mas1[j,1],mas1[j,2],aa);
 Sort(form1.LabeledEdit3.Text,s1);
 Soot(form1.LabeledEdit3.Text,s1,mas1);
   for i:=1 to length(form1.LabeledEdit4.Text) do
    change1(aa,mas1[i,2],mas1[i,1],aa);
blockwrite(f2,aa,size,q);
end;
closefile(f2);
CloseFile(f1);
showmessage('Дешифрование завершено!');
end;

Зачем Вы тег PHP использовали?!
У Вас программа на PHP ?!
Нужно использовать обыкновенный
тег [CODE]..[/СODE] (это кнопочка с решёточкой #)
Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.12.2010 в 22:22.
venomdanger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифратор frekoz Общие вопросы C/C++ 6 02.04.2010 13:16
Программа шифратор. С++ Игорь777 Помощь студентам 10 02.05.2009 10:27
Шифратор файлов на ДЕЛФИ. sting Помощь студентам 4 17.11.2008 17:18
Шифратор на VBA Versifikator Microsoft Office Excel 4 06.12.2007 19:17
шифратор файлов Kubus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 14.05.2007 23:58