шифрование Эль-гамаль

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

25 дек 2013, 00:42

Помогите пожалуйста разобраться.Есть код программы, но нет формы...с горем пополам сделала, но сомневаюсь что правильно. не могли бы вы мне помочь создать форму, и написать комментарии к коду.И что необходимо в форму вводить , чтобы задача работала корректно.
Вот код:

Код: Выделить всё

Var
 primes : Array[1..7] Of integer =
      (2, 3, 5, 7, 11, 13, 17);
 abet:array[0..25] of char;
 p,g,k,y,x: Integer;
 
procedure TForm1.Button1Click(Sender: TObject);
Var
 i,j:integer;
 p1,g1,x1,y1:string;
begin
 j:=1+random(7);
 i:=2+random(6);
  while (j>i) or (j=i) do
   begin
    j:=1+random(7);
   end;
 p:={17}primes[i];
 g:={13}primes[j];
 x:={8}RandomRange(1,p-1);
 y:={1}(Round(exp(x*ln(g)))) mod p;
 p1:=p1+IntToStr({p}primes[i]);
 g1:=g1+IntToStr({g}primes[j]);
 x1:=x1+IntToStr(x);
 y1:=y1+FloatToStr(y);
 edit1.Text:=p1;
 edit2.Text:=g1;
 edit3.Text:=x1;
 edit4.Text:=y1;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
 i,j,M:integer;
 M1:string;
 a,b:Int64;
begin
Memo1.Lines.Clear;
k:={13}RandomRange(1,p-1);
edit6.Text:=IntToStr(k);
for i:=0 to 25 do abet[i]:=chr(97+i);
M1:=Edit5.Text;
for j:=1 to length(M1) do
  for i:=0 to 25 do
    if M1[j]=abet[i] then
      begin
        M:=i;
        a:=(Round(exp(k*ln(g)))) mod p;
        b:=(Round(exp(k*ln(y)))*M) mod p;
        Memo1.Lines[0]:=Memo1.Lines[0]+IntToStr(a)+','+IntToStr(b)+',';
      end;
 
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);
var
SLA: array[1..50] of string;
SLB: array[1..50] of string;
 i,j,n,t,a,b,c,d,M,posS,sort:integer;
 M1,M2,a1,b1:string;
begin
 c:=1;
 d:=1;
 j:=1;
 sort:=1;
 M1:=Memo1.Lines.Text;
 
 while Pos(',',M1)<>0 do
  begin
  posS:=pos(',',M1);
    if (sort Mod 2)<>0 then
     begin
      SLA[c]:=copy(M1,0,posS-1);
      c:=c+1;
     end
    else
     begin
      SLB[d]:=copy(M1,0,posS-1);
      d:=d+1;
     end;
   sort:=sort+1;
   delete(M1,1,posS);
  end;
 
 
  For i:=1 to 20 do
   begin
    if SLA[i]='' then
     Break
     else
    a:=StrToInt(SLA[i]);
    {for n:=1 to k do
     begin
       a:=a*a;
     end; }
    b:=StrToInt(SLB[j]);
    M:=(b*(Round(exp((p-1-x)*ln(a))))) mod p;
    {M:=(b*a) mod p;}
    for t:=0 to 25 do
     begin
       if t=M then
       M2:=M2+abet[t];
       end;
       {M2:=M2+IntToStr(M);}
    j:=j+1;
     end;
 
 edit7.Text:=M2;
end;
 
 
end.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

25 дек 2013, 11:21

Создаете пустую форму, на нее кладете 7 TEdit, две TButton и одно TMemo. Это то, что из кода видно.
Данные, по всей видимости, берутся из Memo1 и Edit5.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

25 дек 2013, 14:53

Спасибо, ноя это уже сделала.я не пойму что куда вводить нужно.и комментарии к коду нужны, чтобы это программу защитить
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

25 дек 2013, 17:50

А это лучше всего спросить у того, кто делал вам эту программу, раз это, очевидно, не вы
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

25 дек 2013, 18:52

я этот код нашла на одном из сайтов.помочь там никто не может, поэтому обращаюсь к вам
Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

26 дек 2013, 22:00

Ребят, ну помогите пожалуйста задачка срочна нужны.может кто может просто форму создать с подписями.а я тогда уж сама разобраться попытаюсь
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

26 дек 2013, 22:18

За несколько дней до НГ выкроить свободное время практически не реально. А когда реально, то думать и писать код настолько влом)) Я мож завтра че-нить напишу, если корпоратива не будет
It's a long way to the top if you wanna rock'n'roll
Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

27 дек 2013, 08:39

да я всё понимаю....я надеюсь вы мне поможете
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

27 дек 2013, 11:43

Вот форма с компонентами и привязкой
У вас нет необходимых прав для просмотра вложений в этом сообщении.
It's a long way to the top if you wanna rock'n'roll
Анастасия21
Сообщения: 7
Зарегистрирован: 25 дек 2013, 00:35

27 дек 2013, 20:07

А можно спросить какая кнопка за что отвечает?
Ответить