| Autor |
Beitrag |
max1235
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Mo 25.01.10 16:01
Hallo Leute.
Ich weiß, dass Verschlüsselung schon X-Mal besprochen wurde, habe aber nichts passendes gefunden (Klappt alles nicht-kann ja auch an mir liegen).
Ich habe ein kleines Spiel programmiert. Am Ende wird die Zahl der Punkte sortiert in eine Stringliste geschrieben und dann als txt-Datei gespeichert (Highscore). beim nächsten Speichern eines Highscores wird die Datei wieder geladen. Ein Stringgrid dient in Form2 dann als Tabelle, die die Besten Ergebnisse anzeigt (Bei diesem Aufruf wird es als Array übergeben). Klappt alles super, aber jetzt die Frage:
Wie kann ich die TXT-Datei verschlüsseln, sodass man sie nicht auf anhieb lesen kann?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; k: integer; t: integer; g: Integer; begin name:=inputbox('Spieler', 'Spieler:', 'Spieler1'); highscorestringlist:=tstringlist.create; highscorestringlist.loadfromfile('highscore.txt'); for k := 0 to highscorestringlist.count-1 do begin highscore[k].punkte:=strtoint(copy(highscorestringlist[k],0,pos(';',highscorestringlist[k])-1)); highscore[k].name:=copy(highscorestringlist[k],pos(';',highscorestringlist[k])+1,length(highscorestringlist[k])-pos(';',highscorestringlist[k])); end; for i := 0 to high(highscore)-1 do begin if j<>true then begin if summegesamt>highscore[i].punkte then begin for g := high(highscore)-1 downto i do begin highscore[g+1].punkte:=highscore[g].punkte; highscore[g+1].name:=highscore[g].name; end; highscore[i].punkte:=summegesamt; highscore[i].name:=name; j:=true end; end; end; highscorestringlist.clear; for t := 0 to high(highscore)-1 do begin highscorestringlist.add(inttostr(highscore[t].punkte)+';'+highscore[t].name); end; highscorestringlist.savetofile('highscore.txt'); highscorestringlist.free; form2.visible:=true; end; |
P.S.: In der TXT-Date steht Punktezahl;Name. Beispiel für TXT-Datei:
100;Max
95;Spieler1
...
Moderiert von Narses: Topic aus Datenbanken verschoben am Mo 25.01.2010 um 15:55
Zuletzt bearbeitet von max1235 am Sa 19.03.11 13:17, insgesamt 1-mal bearbeitet
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 25.01.10 16:13
Hast du schon mal nach Verschlüsseln hier im Forum gesucht? Da bekommst du ne Liste von relevanten Themen, die kannst du von ihr bis zum mond legen und dann den mann im mond besuchen gehen.
ein zusätzliches Schlüsselwort verrat ich dir: "DEC"
Das ist das Delphi Encryption Compendium (rechtschreibfehler vorbehalten) vom user "negaH" aus der Delphi-Praxis.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
max1235 
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Mo 25.01.10 16:21
erstmal danke für die antwort. aber ich finde da nur das: www.delphipraxis.net/post527274.html und das hilft mir auch nicht wirklich
Zuletzt bearbeitet von max1235 am Sa 19.03.11 13:17, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 25.01.10 17:04
Moin!
Schau mal hier, vielleicht kommst du damit weiter.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
max1235 
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Mo 25.01.10 17:08
danke. ich denke damit versteh ichs einigermaßen. aber warum hab ich das nicht gefunden?
Zuletzt bearbeitet von max1235 am Sa 19.03.11 13:18, insgesamt 1-mal bearbeitet
|
|
Mastersmind
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 25.01.10 18:23
Auf deine Frage hab ich leider keine Antwort...vllt hast du einfach zu eingeschränkt gesucht oder zu schnell aufgegeben...?
Zu deinem Problem...oben hast du geschrieben, dass es "auf Anhieb" nicht ausgelesen werden sollte..da es um ein Spiel geht und du es wirklich bei "auf Anhieb" belassen möchtest, stellt Delphi bereits Verschlüsselungen wie z.B. die XOR-Verschlüsselung bereit.
Für Passwörter oder wichtigere Dateien solltest du aber vorerst auf ausgereifte Fertigkomponenten zurückgreifen, z.B.
www.cityinthesky.co.uk/cryptography.html
MfG
|
|
max1235 
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Mo 25.01.10 20:58
Mit der XOR-Verschlüsselung gibts immer den Fehler "Ungültiger Integer-Wert '" oder so ähnlich. keine ahnung. dachte weil der pc schon nen paar stunden lief und dann habe ich dann den pc neu gestartet, hat aber auch nicht funktioniert. Jetzt hab ich das von Narses einigermaßen verstanden
Zuletzt bearbeitet von max1235 am Sa 19.03.11 13:18, insgesamt 1-mal bearbeitet
|
|
Mastersmind
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 26.01.10 00:31
forum.delphi-treff.d...owthread.php?t=24444
Wobei wir wieder bei der Frage nach der falschen Art des Suchens wären
MfG
|
|
max1235 
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Di 26.01.10 09:39
Danke. Mein Problem ist jetzt nur ich habe eine Stringlist. Wenn ich jede Zeile einzeln verschlüssel, dann steht alles noch in einer Zeile. Mit #10#13 klappt das auch nicht.
Zuletzt bearbeitet von max1235 am Sa 19.03.11 13:18, insgesamt 1-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 26.01.10 12:12
Moin!
max1235 hat folgendes geschrieben : | | Mein Problem ist jetzt nur ich habe eine Stringlist. Wenn ich jede Zeile einzeln verschlüssel, dann steht alles noch in einer Zeile. Mit #10#13 klappt das auch nicht. |
RC4 erzeugt Binärdaten, da gibt´s keine Zeilen mehr. Du musst die Stringliste mit den Originaldaten als Stream durch den RC4Adapter ziehen und dann in einen Filestream schreiben. Beim Laden dann andersrum.
Ansonsten: Zeig mal deinen aktuellen Code.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
max1235 
      
Beiträge: 37
win 98 (aber so gut wie nie dran), win xp, win vista, xandros
delphi(delphi3+7), c#(MV), c++(codeblocks;noch ganz am Anfang vom Lernen)
|
Verfasst: Di 26.01.10 13:52
Danke. klappt gut. super!
|
|