Delphi-PRAXiS

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

Kompon Ente 27. Jun 2005 12:40

Klugscheißer! :warn: :mrgreen:

Naja, zurück zum Thema:

Wie mache ich nun weiter? Bräuchte mal einen Anfang!

r2c2 27. Jun 2005 12:50

Zitat:

Zitat von Kompon Ente
Klugscheißer! :warn: :mrgreen:

Wird man hier auch schon beschimpft, wenn man was erklären will? Warum soll ich bei meinen Erklärungsversuchen nicht auf eine bildliche Sprache zurückgreifen können? Is nicht bös gemeint, aber Schreibschutz und Kryptographie sind zwei verschiedene Paar Stifel.
Zitat:


Naja, zurück zum Thema:
Zitat:

Wie mache ich nun weiter? Bräuchte mal einen Anfang!
Ich hab dir doch schon n Anfang gepostet. Wenn du die Suche noch nicht gefunden hast:
[cl]Verschlüsselung[/cl][dp]Verschlüsselung[/dp]
XORXORHier im Forum suchenXPR
Rot13Rot13Hier im Forum suchenRot13
AESAESHier im Forum suchenAES
[cl]Cäsar[/cl][dp]Cäsar[/dp]
KryptographieKryptographieHier im Forum suchenKryptographie
[google]Verschlüsselung[/google]
und natürlich Wikipedia

Welchen Alogrithmus du nun verwendest kommt darauf an, wie aufwendig und wie sicher das ganze sein soll.

mfg

Christian

Kompon Ente 27. Jun 2005 13:01

Das war ganz und gar nicht böse gemeint, deshalb ja auch der :mrgreen:-Smilie dazu. :zwinker:

Bin Dir ja dankbar für Deine Hilfe! ;)

Naja, mal schauen, wie ich nun fortfahre..

Kompon Ente 27. Jun 2005 13:52

Hi,

ich hab mich jetzt doch entschieden, das Ganze mit meiner Variante zu machen.

Jetzt ist z.B. das erste Wort "HEXE", was im Textfile steht.

Eigentlich soll's ja so sein, dass die Wörter von vorneherein verschlüsselt im Textfile stehen sollen und nur entschlüsselt werden sollen, wenn das Game gestartet wird.

r2c2 28. Jun 2005 10:49

Zitat:

Zitat von Kompon Ente
Hi,

ich hab mich jetzt doch entschieden, das Ganze mit meiner Variante zu machen.

Welche Variante? Der Code, den du gepostet hast, verschlüsselt nicht. Wenn man die Verschlüsselung da noch einbaut, macht der das auch nur Buchstabenweise(was IMHO die Wahl des Alg einschränkt). Such dir also n Alg aus und schreib den in deine Funktion. Links hab ich dir doch genug gegeben, oder?

Zitat:

Jetzt ist z.B. das erste Wort "HEXE", was im Textfile steht.

Eigentlich soll's ja so sein, dass die Wörter von vorneherein verschlüsselt im Textfile stehen sollen und nur entschlüsselt werden sollen, wenn das Game gestartet wird.
Gut, dann machs doch so. Was genau is denn dein Problem? :gruebel:

mfg

Christian

Kompon Ente 28. Jun 2005 11:02

Hi,

ich hab im Programm die Möglichkeit neue Wörter hinzuzufügen, zu ändern oder zu löschen.

Nun möchte ich z.B. HEXE hinzufügen und dann muss er es umwandeln und in den Textfile posten.

Ansonsten müsste ich ja für 1.000 Wörter das verschlüsselte Wort in die Textdatei schreiben und bis ich da die Buchstaben rausgefunden hab, dauert das ja 'ne Weile.

Von daher will ich via InputQuery im Programm das Wort HEXE eingeben und im Textfile soll dann GANO erscheinen z.B.!

Verstehste?

Dann brauch mein File nicht mal verschlüsselt sein, weil's zu kompliziert wird, das Wort aus dem Textfile zu lesen.

r2c2 28. Jun 2005 11:09

Zitat:

Zitat von Kompon Ente
Hi,

ich hab im Programm die Möglichkeit neue Wörter hinzuzufügen, zu ändern oder zu löschen.

Nun möchte ich z.B. HEXE hinzufügen und dann muss er es umwandeln und in den Textfile posten.

Soweit klar, hätte ich auch so gemacht.

Zitat:


Von daher will ich via InputQuery im Programm das Wort HEXE eingeben und im Textfile soll dann GANO erscheinen z.B.!

Verstehste?
Jo, versteh ich, ich versteh aber immer noch nich, was dein Problem ist.

Zitat:

Dann brauch mein File nicht mal verschlüsselt sein, weil's zu kompliziert wird, das Wort aus dem Textfile zu lesen.
Dein File is dann verschlüsselt, nur halt nicht im Ganzen, sondern zeilenweise. Was is denn jetzt dein Problem? Was kapierst du nicht? :gruebel: :gruebel: :gruebel:

mfg

Christian

Kompon Ente 28. Jun 2005 11:10

Mein Problem ist das, dass ich nicht weiß, wo ich das nun verschlüssele.

Ich schätze mal bei der Eingabe, aber was genau muss ich da coden?

r2c2 28. Jun 2005 11:15

Zitat:

Zitat von Kompon Ente
Mein Problem ist das, dass ich nicht weiß, wo ich das nun verschlüssele.

Ich schätze mal bei der Eingabe, aber was genau muss ich da coden?

Das kommt darauf an, was für n Alg du nehmen willst. Klick einfach mal die Links durch, die ich dir gepostet hat und füg den Code, den du dann da findest in eine Funktion ein. Was is denn dann da so schwer? Soll ich für dich jetzt den Alg raussuchen? Ich kann dir was erklären oder dir helfen, ich werde aber mit Sicherheit *nicht* deine Arbeit machen und dir das Prog schreiben.

mfg

Christian

Kompon Ente 28. Jun 2005 11:18

Das hab ich auch gar nicht gesagt.

Ich möchte meinen Textfile mit dieser Variante

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;
verschlüsseln.

Wie muss ich das da machen? Das ist mein Problem! ;)

TeronG 28. Jun 2005 11:42

Re: Textfile verschlüsseln
 
Mein Tip: (auch wenn ich nur andere aus dem threat zitire)
Hol dir so n XOR/RC4 teil .. (siehe R2C2)
in der CodeLib sollten schon fertige ver/entschlüsselungs- Functionen parat liegen (hab mir da auch mal eine ausgeliehen ^^)

da kannste dann dein klartext (string) übergeben und bekommst den verschlüsselten String zurück (und umgekehrt) ...

r2c2 28. Jun 2005 12:23

Re: Textfile verschlüsseln
 
Zitat:

Zitat von Kompon Ente
Wie muss ich das da machen? Das ist mein Problem! ;)

So wie das TeronG und ich schon gesagt haben. Hol dir den Alg und mach das, was eigentlich jeder können sollte, der sich an den PC wagt: Copy&Paste. Tut mir Leid, aber die Tasten musst du schon selber drücken...

mfg

Christian

//Nachtrag: @Sharkey: Warum hast du eigentlich den Titel gelöscht? War das Absicht? :wink:
Nachtrag2: Ich seh gard, das warst gar nicht du. Sorry.
@Kompon Ente warim hast de den Titel gelöscht? :gruebel:

Kompon Ente 28. Jun 2005 13:03

Wird man jetzt hier auch noch gezwungen einen Titel anzugeben? Ich gebe grundsätzlich nie einen ein.

Es kann sich ja wohl jeder denken, worum es geht, wenn ich in dem Thread poste, oder?

Meine Güte..

TeronG 28. Jun 2005 13:09

Re: Textfile verschlüsseln
 
Titel :gruebel:
ach der kleine ??? is mir noch garnet aufgefallen :pale:
nu aber wieder schluß mit OT :zwinker:

r2c2 28. Jun 2005 19:18

Re: Textfile verschlüsseln
 
Zitat:

Zitat von Kompon Ente
Wird man jetzt hier auch noch gezwungen einen Titel anzugeben? Ich gebe grundsätzlich nie einen ein.

Es kann sich ja wohl jeder denken, worum es geht, wenn ich in dem Thread poste, oder?

Meine Güte..

Das ganze hat schon seinen Sinn. Wenn man die Suche benutzt(ja es soll Leute geben die das tun :wink:), erwartet man auch, dass man da etwas findet. Wenn aber alle so denken wie du, bekommt man als Suchergebnis nur Leerstrings als Titel. Sehr aufschlussreich... Zumal du dir ja extra die Mühe gemacht hast, den Titel zu löschen.

BTT: Hast du jetzt deinen Alg gefunden und in den QuelltextEditor eingefügt? Oder hat auch das nicht geklappt? Bist du auf *wirkliche* Probleme gestoßen, dann bin ich(und ich glaube da kann ich auch für andere sprechen) gerne bereit dir zu helfen, ansonsten is dein Problem ja jetzt gelöst...

mfg

Christian

turboPASCAL 28. Jun 2005 20:09

Re: Textfile verschlüsseln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
hier noch ein Verschlüsselungssystem (Symmetrische Verschlüsselung), ein sehr einfaches, aber doch ganz gut für eine Anwendung wo man nicht gleich den Klartext erkennen soll.

Sicher es gibt viel, viel bessere Varianten XOR and OR "OR NOT TO BE" :gruebel: , Symmetrische Verschlüsselung, Asymmetrische Verschlüsselung, 128 Bit ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.

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