ďťż

Ładny brzuch

Hej! Mam problem:
piszę program do szyfrowania tekstu. oto kod procedur szyfrującej i odszyfrowującej:

Szyfrowanie:
procedure TForm1.Koduj1Click(Sender: TObject); //początek procedury kodującej var znak,zn:char; //deklaracja zmiennych ascii,znah,haslo,n,h,has,x:integer; begin memo2.lines.Clear; for h:=1 to length(edit1.Text) do //haslo begin zn:=edit1.text[h]; has:=ord(zn); haslo:=haslo+has; end; if proste1.Checked then //kodowanie proste for n:=1 to length(memo1.Text) do begin znak:=memo1.text[n]; x:=ord(znak); x:=x+15; znak:=chr(x); memo2.Text:=memo2.Text+znak; end else if pojedyncze1.Checked then //kodowanie pojedyńcze for n:=1 to length(memo1.Text) do begin znak:=memo1.text[n]; x:=ord(znak); znah:=x xor haslo; znah:=znah+7; znak:=chr(znah); memo2.Text:=memo2.Text+znak; end else if podwojne1.Checked then //kodowanie podwójne for n:=1 to length(memo1.Text) do begin znak:=memo1.text[n]; x:=ord(znak); znah:=x xor haslo; znah:=znah+12; x:=znah xor haslo; znak:=chr(x); memo2.Text:=memo2.Text+znak; end else if zlozone1.Checked then //kodowanie złożone for n:=1 to length(memo1.Text) do begin znak:=memo1.text[n]; x:=ord(znak); x:=x*3; znah:=x xor haslo; znah:=znah+2; x:= znah xor haslo; x:=x-13; znah:=x xor haslo; znah:=znah div 2; znak:=chr(znah); memo2.Text:=memo2.Text+znak; end; end;

odszyfrowywanie:
procedure TForm1.Odkoduj1Click(Sender: TObject); //procedura odkodowująca var znak,zn:char; //deklaracja zmiennych ascii,znah,haslo,n,h,has,x:integer; begin memo1.lines.Clear; for h:=1 to length(edit2.Text) do //haslo begin zn:=edit2.text[h]; has:=ord(zn); haslo:=haslo+has; end; if proste1.Checked then //proste for n:=1 to length(memo2.Text) do begin znak:=memo2.text[n]; x:=ord(znak); x:=x-15; znak:=chr(x); memo1.Text:=memo1.Text+znak; end else if pojedyncze1.Checked then //pojedyncze for n:=1 to length(memo2.Text) do begin znak:=memo2.text[n]; x:=ord(znak); x:=x-7; znah:=x xor haslo; znak:=chr(znah); memo1.Text:=memo1.Text+znak; end else if podwojne1.Checked then //podwójne for n:=1 to length(memo2.Text) do begin znak:=memo2.text[n]; x:=ord(znak); znah:=x xor haslo; znah:=znah-12; x:=znah xor haslo; znak:=chr(x); memo1.Text:=memo1.Text+znak; end else if zlozone1.Checked then //zlozone for n:=1 to length(memo2.Text) do begin znak:=memo2.text[n]; x:=ord(znak); x:=x*2; znah:=x xor haslo; znah:=znah+13; x:= znah xor haslo; x:=x-2; znah:=x xor haslo; znah:=znah div 3; znak:=chr(znah); memo1.Text:=memo1.Text+znak; end; end;

Otóż pierwsze dwa działają dobrze (prozte i pojedyńcze), natomiast przy podwójnym i złożonym źle działa odkodowywanie. Uprzejmie proszę o podpowiedź, co skopałem



Jakies bledy? Jesli tak to je laskawie wypisz <_<

http://img461.images...yfrownik4qx.jpg

Chodzi o to, że jak koduję tekst przy ustawienu podwójnym albo złożonym z okna lewego do prawego(w lewym zawsze jest tekst "Czysty"), to przy próbie odkodowania z prawego do lewego przy identycznym haśle wychodzą głupoty

jak to robisz?
rob tak:
szyfrowanie:
algorytm1,
aldorytm2,

deszyfrowanie:
algorytm2,
algorytm1,

itp, może to masz skopane



Zauwaz, ze xorujesz z haslem, ktore jest inne przy kodowaniu i przy odkodowywaniu :)

właśnie w tym problem, że nie moge zlokalizować błędu!

//edit: hę?

//edit2: ale hasła są identyczne w obu editach! (są wpisane takie same)
Użytkownik Fogel edytował ten post 25 październik 2005, 14:52

//edit2: ale hasła są identyczne w obu editach! (są wpisane takie same)

Dzięki za pomoc - Udało się:banana: :banana: :banana: :banana: :banana:

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •