Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateien "verstecken"/"verschlüsseln" (https://www.delphipraxis.net/41504-dateien-verstecken-verschluesseln.html)

Flogo 4. Mär 2005 11:26


Dateien "verstecken"/"verschlüsseln"
 
Hi :hi:
Ich schreibe grade an einem Spiel und versuche die Daten (Bilder, Texte, Sounds) so vor dem Benutzer zu verstecken, dass dieser nicht direkt an den Daten ablesen kann, wie das Spiel weitergeht. Es soll keine extreme Verschlüsselung oder so was ähnliches werden, sondern nur die Daten vor einem 08/15-User verstecken. Dabei soll die Ladezeit natürlich möglichst klein bleiben.

Im Moment habe ich alles in Dlls. Ich weiß, dass man mit dem entsprechenden Programm auch da mit drei Mausklicks an die Dateien kommt, aber dieser "Schutz" reicht mir. Ich überlege mir allerdings auf typisierte Dateien umzusteigen.

1) Wäre das überhaupt schneller?
2) In der Dll konnte ich mehrere Daten in eine Dll packen und über den Namen ansprechen. Wenn ich dass mit typisierten Dateien machen will müsste ich entweder erst sehr viel einlesen, oder für jedes Objekt (Bild + Text / Text + Sound) eine einzelne Datei anlegen. Ist das richtig?
3) Gibt es vielleicht eine Alterantive?


Nochmal: Es geht mir in erster Linie nicht um einen sicheren Schutz der Daten, sondern nur um einen "Spoilerschutz" des Spielers. Deshalb wäre es auch schade, wenn man die Dateien einzeln anlegen muss, weil man dann keine Namen, wie "Ente", "Mistgabel", ... benutzen kann sondern auf weniger aussagekräftige Namen zurückgreifen müsste ("Level_1_Item_2", ..)

Jasocul 4. Mär 2005 11:35

Re: Dateien "verstecken"/"verschlüsseln"
 
Zitat:

Zitat von Flogo
1) Wäre das überhaupt schneller?
2) In der Dll konnte ich mehrere Daten in eine Dll packen und über den Namen ansprechen. Wenn ich dass mit typisierten Dateien machen will müsste ich entweder erst sehr viel einlesen, oder für jedes Objekt (Bild + Text / Text + Sound) eine einzelne Datei anlegen. Ist das richtig?
3) Gibt es vielleicht eine Alterantive?

Vorab: Wie speicherst du denn Daten in einer DLL? :gruebel:
zu 1. Keine Ahnung. Noch nie getestet (siehe "Vorab"
zu 2. Das hängt von der Struktur ab. Wenn deine Definition des Types geschickt ist, liest du das in einem Rutsch ein.
zu 3. Streams, INI. Die Daten könntest du mit einer einfachen XOR-Verküpfung ver- und entschlüsseln

Wenn du ein einfaches Tutorial zu typisierten Dateien brauchst, schau einfach auf meiner Hompage nach.

Flogo 4. Mär 2005 11:52

Re: Dateien "verstecken"/"verschlüsseln"
 
So speicher ich Bilder in Dlls:
http://www.delphipraxis.net/internal...ghlight=bilder

Ich glaube ich weiß noch nicht wirklich was typisierte Dateien sind (Ich glaube das was ich meinte waren Streams mit ner bestimmten Struktur). Ich werd mir gleich mal das Tutorial durchlesen. Wie müsste denn meine Struktur sein, damit ich schnell an verschiedene Dateien komm?

Und wie kann man denn Bilder und Sound in Inis speichern? :gruebel: Ini.WriteBinaryStream vielleicht?? Sorry wenn die Frage jetzt irgendwie dumm ist aber ich hab hier grad kein Delphi + OH zur Hand.

Jasocul 4. Mär 2005 12:05

Re: Dateien "verstecken"/"verschlüsseln"
 
Das mit den Bildern in DLLs ist ganz pfiffig.
Schau dir das mit den typisierten Dateien ruhig mal an. Schaden kann es nicht. Ich denke aber, dass du bei Streams landen wirst. Ich glaube Luckie hat da ein Tutorial zu, bin mir aber nicht sicher. Bemühe einfach mal die Suchfunktion.

Flogo 4. Mär 2005 12:42

Re: Dateien "verstecken"/"verschlüsseln"
 
So wie ich die Tutorials lese glaub ich das auch. Da es bei mir eigentlich nur um dynamische Strings (bzw. ganze Textdateien) und unterschiedlich große Dateien geht, glaub ich mit typ.Dateien da nicht viel ausrichten zu können. Also Dlls, Streams oder Inis.
Kann vielleicht jemand noch was zur Geschwindigkeit sagen?

Flogo 10. Mär 2005 12:30

Re: Dateien "verstecken"/"verschlüsseln"
 
*push*
Die Sache mit der Geschwindigkeit wäre mir echt wichtig, ich will ja kein Archiv bauen, dass später ewig braucht um die Daten wieder auszulesen

alcaeus 10. Mär 2005 12:46

Re: Dateien "verstecken"/"verschlüsseln"
 
Zitat:

Und wie kann man denn Bilder und Sound in Inis speichern?
Ini-Dateien sind AFAIR auf 64 KB begrenzt. Da wirst du nicht viel machen können.
Zum Speichern von beliebig langen Elementen kannst du entweder die Hier im Forum suchenTDPCollection oder auch [oh]BlockRead, BlockWrite[/oh] für den direkten Dateizugriff verwenden. Ich hoffe ich hab deine Fragestellung auch irgendwie richtig interpretiert...

Greetz
alcaeus

maximov 10. Mär 2005 13:51

Re: Dateien "verstecken"/"verschlüsseln"
 
Zitat:

Zitat von alcaeus
Zitat:

Und wie kann man denn Bilder und Sound in Inis speichern?
Ini-Dateien sind AFAIR auf 64 KB begrenzt. Da wirst du nicht viel machen können.
Zum Speichern von beliebig langen Elementen kannst du entweder die Hier im Forum suchenTDPCollection oder auch [oh]BlockRead, BlockWrite[/oh] für den direkten Dateizugriff verwenden. Ich hoffe ich hab deine Fragestellung auch irgendwie richtig interpretiert...

Greetz
alcaeus

TDPCollection gibt es nicht, die haben wir sinnigerweise TjsCollection und TmxJsCollection genannt...aber die unit heißt Hier im Forum suchendpCollection :wink:

...und ja, das würde sinn machen.

Und zusammen mit dem Hier im Forum suchenRC4 Strom Dekorierer kannst du sie optimal, mit sehr wenig aufwand verschlüsseln.


//edit: edit!

gekmihesg 10. Mär 2005 14:29

Re: Dateien "verstecken"/"verschlüsseln"
 
du kannst ja mein (ein wenig umstrittenes ;)) Dateiarchiv verwenden. das is genau für sowas gedacht.
8mb zu entpacken dauert bei mir zwischen 1 und 2 sekunden (800mhz).
47mb 5-6 sekunden

Flogo 14. Mär 2005 13:46

Re: Dateien "verstecken"/"verschlüsseln"
 
Erstmal vielen Dank für eure Antworten. Ich bin leider länger nicht dazu gekommen hier zu antworten.

Um noch mal genauer zu beschreiben um was für Daten es bei mir geht:
- Bilder(bmp, jpg) mit zusätzlicher Textdatei
- Sounds(mp3, ogg) mit Text
- vllt auch noch einzelne Bilder oder einzelne Texte

Im Moment sehe ich drei Möglichkeiten, diese Daten zu speichern:
1) Jede Datei einzeln speichern
2) Immer Bild und Text bzw Sound und Text zusammen in eine Datei speichern
3) Alle Sounds mit Bilder in eine Datei; Alle Bilder und Texte in eine Datei; ...

@gekmihesg:
Ich hab jetzt bei den Dlls (noch) keine Messung gemacht aber deine Zahlen klingen irgendwie doch noch ziemlich hoch. Wie ich ja auch schon in deinen Thread reingeschrieben hab würde ich das ganze dann mit Streams lösen. Die Frage nach der Geschwindigkeit bleibt trotzdem bestehen.

Da Inis wohl rausfallen bleiben mir nur noch die Streams, die Dlls und eventuell die Collection (wobei ich damit noch nie gearbeitet hab)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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