Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Textfile verschlüsseln (https://www.delphipraxis.net/48558-textfile-verschluesseln.html)

Kompon Ente 27. Jun 2005 10:50


Textfile verschlüsseln
 
Hallo zusammen,

ich hab das Spiel Hangman (besser bekannt unter "Galgenmännchen") mal programmiert.

Die Wörter werden per Zufallsgenerator aus einem Textfile (words.txt - in jeder Zeile steht ein Wort!) geholt und bei Spielstart angezeigt.

Nun möchte ich, dass beim Spielende das Wort verschlüsselt wird und beim Spielstart entschlüsselt.

Besser wäre es natürlich noch, wenn man die words.txt-Datei gar nicht öffnen könnte bzw. dann einen völlig verwirrenden Code (wie wenn man eine .exe-Datei mit Notepad öffnet) angezeigt bekommt und trotzdem im Spiel das richtige Wort.

Hat jemand 'ne Idee?

DP-Maintenance 27. Jun 2005 10:54

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Klatsch und Tratsch" nach "Sonstige Fragen zu Delphi" verschoben.
Es geht doch um Delphi. Warum dann nicht in eine der Delphi-Sparten? ;-)

Sharky 27. Jun 2005 10:58

Re: Textfile verschlüsseln
 
Hai,

in der Code-Library gibt es einen Beitrag mit einer Verschlüsselungsmethode.

Ansonsten einfach mal die Forensuche "missbrauchen".

Letztendlich ist die Frage: Wie sicher möchtest Du das ganze verschlüsseln? Eventuell reicht ja schon eine Hier im Forum suchenxor-Verschlüsselung aus?

Kompon Ente 27. Jun 2005 11:08

Hi,

es soll schon ziemlich sicher sein, sonst ist das Game ja langweilig! ;)

Ich hab's gerade mal mit dem FileCrypter von Luckie versucht, aber das ist ja auch blöd.

Da ist's zwar dann verschlüsselt, aber wenn ich dann spielen will, kommt als Abfrage das verschlüsselte Wort.

Es soll ja so sein, dass die words.txt verschlüsselt ist - auch während des Spiels - und trotzdem die korrekten Wörter angezeigt werden!

MrKnogge 27. Jun 2005 11:11

Re: Textfile verschlüsseln
 
ist ja logisch, das dann verschlüsselte wörter angezeigt werden, dein spiel muss die wörter dann schon wieder entschlüsseln.

Sharky 27. Jun 2005 11:11

Hai Kompon Ente

Regel 1: Die entschlüsselten Daten nie in einer Datei zweichen speicher.

Du darfst also nicht die Datei an sich verschlüsseln/entschlüsseln. Mache dies für jeden einzelnen Eintrag.
Wenn für dein Spiel nun ein neues Wort benötigt wird liest Du die entsprechende Zeile aus dem Textfile aus und entschlüsselst dann nur diese eine Zeile. Der entschlüsselte Text liegt dann einfach in einer Variablen.

Kompon Ente 27. Jun 2005 11:23

Hi,

habe gerade nochmal meinen Kollegen gefragt, der mir sagte, dass ich eine Datei nicht ohne weiteres schreibgeschützt "schützen" kann. Also man kann sie danach einfach in den Eigenschaften "ungeschützt" öffnen und sieht die Wörter ja dann.

Nun ja, bleibt mir nichts anderes übrig als die Wörter einzeln (schon klar, Sharky ;)) zu verschlüsseln.

Ich dachte an sowas (mit freundlicher Hilfe meines Kollegen):

Delphi-Quellcode:
function TForm1.verschluesseln(einWort: String): String;
var
   unvW: String;
   vW: String;
   B: String;
   i: Integer;

begin
  unvW := einWort;
  vW := '';

  for i := 1 to length(einWort) do
  begin
    B := copy(einWort,i,1);
    // B verschlüsseln
    vW := vW + B;
  end;

  Result := vW;

end;
Aber wie genau mach ich das mit meinen Wörtern???

r2c2 27. Jun 2005 12:29

Zitat:

Zitat von Kompon Ente
Delphi-Quellcode:
function TForm1.verschluesseln(einWort: String): String;
var
   unvW: String;
   vW: String;
   B: String;
   i: Integer;

begin
  unvW := einWort;
  vW := '';

  for i := 1 to length(einWort) do
  begin
    B := copy(einWort,i,1);
    // B verschlüsseln
    vW := vW + B;
  end;

  Result := vW;

end;
Aber wie genau mach ich das mit meinen Wörtern???

:wiejetzt: :gruebel:
Warum machst dus dir denn so kompliziert? Schreib dir ne Funktion, die n String verschlüsselt. Etwa so:
Delphi-Quellcode:
function CryptStr(s: string): string;
begin
//such dir dazu n Passendes Verschlüsselungsverfahren aus. Da gibts ne ganze Menge(mit natürlich unterschiedlichem Auswand und unterschiedlichem Sicherheitsgrad(von Rot13 über XOR und was Selbstgebasteltem bis zu AES und ähnlichem))
end;
Dann liest du mit Delphi-Referenz durchsuchenAssign und Delphi-Referenz durchsuchenReadLn die entspechende Zeile aus, ver/entschlüsselst sie und schreibst den verschlüsselten String in die Datei bzw. benutzt den entschlüsselten String für den Hangman.

Zitat:

habe gerade nochmal meinen Kollegen gefragt, der mir sagte, dass ich eine Datei nicht ohne weiteres schreibgeschützt "schützen" kann. Also man kann sie danach einfach in den Eigenschaften "ungeschützt" öffnen und sieht die Wörter ja dann.
Tut mir Leid, aber den Satz kapier ich net. Was hat das Ganze mit dem Schreibschutz zu tun? :gruebel:

mfg

Christian

Kompon Ente 27. Jun 2005 12:31

Hallo,

ja, danke erstmal für die Anregung!

Der Satz hat insofern was damit zu tun, da diese Möglichkeit für mich nicht in Frage kommt und somit zwingend die Verschlüsselungsmethode.

r2c2 27. Jun 2005 12:36

Zitat:

Zitat von Kompon Ente
ja, danke erstmal für die Anregung!

Bitteschön! :)
Zitat:

Der Satz hat insofern was damit zu tun, da diese Möglichkeit für mich nicht in Frage kommt und somit zwingend die Verschlüsselungsmethode.
Ähm.. Ja, das kommt nicht in Frage, hat damit auch gar nix zu tun. Das is in etwa so, wie, wenn du zum Blinde-Kuh-spielen jemandem Ohrstöpsel gibst. :lol:

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr.
Seite 1 von 3  1 23      

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