Autor Beitrag
max1235
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: 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?

ausblenden volle Höhe Delphi-Quelltext
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));//Vor dem ;
 highscore[k].name:=copy(highscorestringlist[k],pos(';',highscorestringlist[k])+1,length(highscorestringlist[k])-pos(';',highscorestringlist[k]));//Nach dem ;
   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 user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 25.01.10 17:04 
Moin!

Schau mal hier, vielleicht kommst du damit weiter. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
max1235 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 26.01.10 12:12 
Moin!

user profile iconmax1235 hat folgendes geschrieben Zum zitierten Posting springen:
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. :idea: ;)

Ansonsten: Zeig mal deinen aktuellen Code.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
max1235 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
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)
BeitragVerfasst: Di 26.01.10 13:52 
Danke. klappt gut. super!