Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Entschlüsselungs Algorhytmus hängt sich auf (https://www.delphipraxis.net/91841-entschluesselungs-algorhytmus-haengt-sich-auf.html)

J.P. 10. Mai 2007 17:33


Entschlüsselungs Algorhytmus hängt sich auf
 
Hi Leute!
Ich hab mir ne kleine Verschlüsselung zusammengebaut. alles schön und gut, aber ich kans nicht mehr deverschlüsseln...
das ist ein Teil des entschlüsselungs codes: (der rest ist das gleiche, nur mit 2 weiteren Zeilen des Memos)

Dabei kommt eine fehlermeldung "875495875495" ist kein gültiger integerwert...
eigentlich sollten das auch keine 12 stellen sondern nur 6 sein.
Ich verstehe nicht, wieso er beim Zweiten durchgang auf einmal die stellenanzahl verdoppelt.

Delphi-Quellcode:
i:=0;i2:=0;i3:=0;charint:=0;
 line1:='';line2:='';line3:='';bs:=''; //alles wird auf 0 bzw '' gesetzt.
 
for i:=1 to length(memo1.lines[0])DIV 6 do begin
  i2:=i2+6;
  bs:='';
  bs:=copy(memo1.lines[0],i3,i2); //ab hier steckt irgendwo der fehler... ;(
  if i3=0 then i3:=i3+7 else i3:=i3+6;
  charint:=strtoint(bs);
  charint:=charint DIV X; //X = integer
  charint:=charint * X;
  charint:=charint-XXXXXX;
  line1:=line1+inttochar(charint);
 end;
Bitte helft mir... J.P.

OG Karotte 10. Mai 2007 17:56

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
Beim zweiten Durchlauf der Schleife kopierst Du doch auch 12 Zeichen (also in Deinem Fall wohl Zahlen (875495875495)...
... und beim dritten wären es 18, dann 24 usw. (je nachdem wie lang die Zeile im Memo ist ...)...

3_of_8 10. Mai 2007 17:59

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
So nebenbei ist deine Formatierung grauenhaft, und auch das ständige aneinanderkopieren über den Umweg mit Strings ist nicht gerade guter Stil. Außerdem ist diese Verschlüsselung auch nicht unbedingt sehr sicher.

himitsu 10. Mai 2007 18:01

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
Erstmal: wie soll jemand wissen was entschlüsselt werden soll, wenn keiner die Verschlüsselung kennt. :zwinker:

Grob würde ich mal vermuten deine Verschlüsselung speichert die Werte als Reihe von 6-stelligen Zahlen?

Bist du mal im einzelschritt durchgegangen?

Dein verschlüsselter String ist wohl '875495875495...'.

Nun solltest du dir mal i2 und den 3 Parameter von COPy in der OH ansehn ... dieses ist nicht der Endindex, sondern die Länge ;)
[add] siehe OG Karotte's Beitrag [/add]

Delphi-Quellcode:
//i:=0;       Schleifenvariablen werden durch die Schleife definiert
//i2           wird nicht benötigt
//i3           kann man aus i errechnen
//charint:=0; wird durch strtoint initialisiert
//bs:='';     wird in der nächsten Zeile durch COPY gesetzt

line1:='';line2:='';line3:='';
for i := 0 to Length(memo1.lines[0]) DIV 6 - 1 do begin
  bs := copy(memo1.lines[0], i * 6 + 1, 6);
  //charint := strtoint(bs);
  //charint := charint DIV X;
  //charint := charint * X;
  //charint := charint-XXXXXX;
  //line1 := line1 + IntToChar(charint);
  line1 := line1 + IntToChar((strtoint(bs) DIV X) * X - XXXXXX);
end;
[add]
zu 3_of_8's Stringaneinanderreihung:

Die Länge vorher setzen und dann nur die Zeichen ersetzen.

Ach ja, den String jedesmal aus dem Memo auszulesen ist och nicht gerade gut.
Delphi-Quellcode:
s := memo1.lines[0];
SetLength(line1, Length(s) DIV 6);
for i := 0 to Length(s) DIV 6 - 1 do
  line1[i + 1] := IntToChar((strtoint(copy(s, i * 6 + 1, 6)) DIV X) * X - XXXXXX);

J.P. 10. Mai 2007 18:07

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
Uff, klar... Ich bin wohl etwas übermüdet...

Das Ding hab ich auch relativ schnell hinge"klatscht".
Danke dass ihr mir geholfen habt.

@3of8: Das ist nicht sicher, ich weiß. Aber das kommt noch, du hast schließlich nur EINEN teil gesehen ;D

das bs:='' hatte ich nur, weil ich vorher was anderes stehen hatte... Ich besorg mir erstmla nen Kaffee...

Nochma riesiges Danke an alle die geantwortet haben...

3_of_8 10. Mai 2007 18:17

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
Wenn das kein etablierter Verschlüsselungsalgorithmus ist, kannst du dir sehr sicher sein, dass der extrem unsicher ist. Implementier doch einen RSA oder sowas, aber denk dir lieber keinen eigenen aus, solange du dich nicht gut mit Kryptographie auskennst. Das führt zu nichts, expertus dico.

himitsu 10. Mai 2007 18:35

Re: Entschlüsselungs Algorhytmus hängt sich auf
 
Abgesehn vom Speicher ... Verschlüsselt is die Datenmenge mindestens 6-mal größer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz