Autor Beitrag
Fabian E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Mi 26.03.08 14:25 
Hallo zusammen,

ich möchte bei einem aktuellen projekt eine ini-datei verschlüsselt speichern.
jetzt frage ich mich wie ich das am besten realisieren soll.
die datei laden und entschlüsseln um sie dann zwischenzuspeichern und n TIniFile zu laden ist ungünstig, da ja während der laufzeit die ini unverschlüsselt vorliegt.
hat jemand eine idee wie das gehen könnte? muss auch keine super verschlüsselung sein, soll nur davon abhalten darin herumzuschnüffeln.

gruß
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: Mi 26.03.08 14:34 
Beim Laden: inidatei in einen stream laden (fall es geht), stream mit Xor entschlüsseln, Stream in TIni laden.

beim speichern: TIni in einen Stream, Xor verschlüsseln, Stream speichern.

müsste doch eigentlich so funktionieren oder??

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 764
Erhaltene Danke: 127



BeitragVerfasst: Mi 26.03.08 16:15 
Du musst doch nicht die komplette Datei verschlüsseln. Arbeite mit der Ini-Datei wie bisher, aber verschlüssle die Werte vor dem Abspeichern bzw. entschlüssle sie nach dem Einlesen. Dann kannst Du mit der Ini-Datei (fast) arbeiten wie gehabt.

ub60
Fabian E. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Mi 26.03.08 19:41 
also im prinzip nur entschlüsseln wenn ein wert abgefragt wird?

ich denke wenn ich es so mache, was irgendwie sinnvoller wäre, würde ich dann auch nur gewisse teile verschlüsseln, nämlich die, die wichtig sind.

gruß
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 26.03.08 20:19 
Hm, als Stichwort könnte vllt auch noch TMemIniFile mit TMemoryStream dienen... auch wenn dann wieder die Daten längere Zeit unverschlüsselt im RAM liegen.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
.#R4id
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90

Windows XP Prof.
CodeGear Delphi 2007
BeitragVerfasst: Mi 26.03.08 20:28 
Ich habs immer so verschlüsselt » Delphi-Treff :: Algorithmen

_________________
ausblenden Delphi-Quelltext
1:
if CopyAndPaste not avaible then Developer := Helpless;					
Sirke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 208
Erhaltene Danke: 2



BeitragVerfasst: Mi 26.03.08 22:30 
Wenn es dir nur ums herumschnüffeln geht, dann denke ich ist es einfacher nur die Werte die in die INI geschrieben werden zu verschlüsseln. Das ganze dann am besten mit einem gut darstellbaren Alphabet (Buchstaben und Zahlen) und Caesar oder Vigenere! Man könnte auch XOR, ModuloAddition oder noch aufwendigere Verfahren benutzen, doch bekommt man dann nur Darstellungsprobleme, weil man Hex verwenden muss!

Daher würde ich Vigenere ausgeweitet auf ein Alphabet mit Großbuchstaben, Kleinbuchstaben und Zahlen benutzen!
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Mi 26.03.08 22:49 
user profile iconMartok hat folgendes geschrieben:
Hm, als Stichwort könnte vllt auch noch TMemIniFile mit TMemoryStream dienen... auch wenn dann wieder die Daten längere Zeit unverschlüsselt im RAM liegen.

Du könntest es auch mal mit meiner INI-Klasse versuchen, sie kann ebenfalls in einen Stream speichern und wäre bei deinen für Ini-Verhältnissen recht großen gme-Dateien deutlich schneller. (Um die es ja geht, oder?)

Die Datei als Ganzes im Stream zu verschlüsseln ist IMHO schneller zu bewerkstelligen als die Werte einzeln. Ein einfaches Xor dürfte für deine Zwecke sicher reichen.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Fabian E. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Do 27.03.08 02:37 
also, ich denke, dass die variante für das verschlüsseln der einzelnen einträge das richtige für mich ist. nur stellt sich jetzt die frage, wie ich den schlüssel speichern soll...
in der exe hardgecodet ist vielleicht etwas blöd oder?hat da jemand eine einfache idee?

gruß
WIng2005
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Do 27.03.08 08:30 
Hallo,

was haltet ihr (beim Thema verschlüsseln) hiervon:
ausblenden Delphi-Quelltext
1:
2:
3:
var s:string

s:=IdencoderXXE1.Encode(edit1.Text);


//bzw.
ausblenden Delphi-Quelltext
1:
s:=IddecoderXXE1.DecodeToString(edit2.Text)					


legt das ganze "verschlüsselt" als String ab bzw. "entschlüsselt" das ganze wieder.

MFG
Steffen
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 27.03.08 10:28 
wie wär's mit ROT13 de.wikipedia.org/wiki/ROT13 ein allgemein anerkannter standart.

sogar hier im forum, gab es schon einen thread hierzu: www.delphi-forum.de/...3Projekte_67244.html

ein sourcecode ist z.b. von hier zu herhalten: www.roland-illig.de/lang.delphi.rot13.html

<HTH>
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Do 27.03.08 10:41 
Warum denn nicht einfach XOR? :gruebel:
Kürzer, schneller, genauso symmetrisch und kann auch nicht-Textzeichen verschlüsseln:
ausblenden Delphi-Quelltext
1:
2:
for i := 1 to Length(Str) do 
  Str[i] := Char(Byte(Str[i]) xor 42);


@Hardcoded: Wenns nur darum geht, einfach das Lesen zu verhindern, sollte es reichen. Ich glaube kaum, dass jemand um ein Spiel zu gewinnen einen Disassembler anwerfen wird :wink:

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)