Daten nicht als Klartext in Datei speichern.
-
Schönen Abend,
ich habe eine Frage zum Speichern von Dateien. Alle die mir bisher bekannten
Funktionen wie fopen, CFile, CStdioFile speichern die Daten als Klartext
in die Datei ab. Nun sieht man aber bei vielen Programmen, das Ihre
Speicherdateien nicht lesbar sind. Wie z.B. hier:http://www.usan.de/save1.gif
oder hier:
http://www.usan.de/save2.gifWie ist die vorgehensweise um Dateien so zu speichern, das Sie nicht
mit jedem beliebigen Text-Editor gelesen werden können? Der Hintergrund ist
folgender, wenn ich Benutzerdaten in einer Datei speichern möchte, dann
sollten diese ja nicht unbedingt klartext sein.Danke Euch
Ach ja selbst wenn ich die Daten mit der Option "wb" binär speicher,
sind die Daten Klartext.
-
Schreib alles in ne Bilddatei mit Passwort.
-->Codeproject (siehe deren Newsletter)
-
Wow, besten Dank. Ich habe jetzt mal die Datei, die ich oben als Beispiel
gepostet habe zu .bmp umbenannt und siehe da, es ist tatsächlich ein Bild
mit verstecken Informationen.
-
2oopuls schrieb:
Schönen Abend,
ich habe eine Frage zum Speichern von Dateien. Alle die mir bisher bekannten
Funktionen wie fopen, CFile, CStdioFile speichern die Daten als Klartext
in die Datei ab. Nun sieht man aber bei vielen Programmen, das Ihre
Speicherdateien nicht lesbar sind. Wie z.B. hier:http://www.usan.de/save1.gif
oder hier:
http://www.usan.de/save2.gifWie ist die vorgehensweise um Dateien so zu speichern, das Sie nicht
mit jedem beliebigen Text-Editor gelesen werden können? Der Hintergrund ist
folgender, wenn ich Benutzerdaten in einer Datei speichern möchte, dann
sollten diese ja nicht unbedingt klartext sein.Danke Euch
Ach ja selbst wenn ich die Daten mit der Option "wb" binär speicher,
sind die Daten Klartext.Klar sind sie Klartext, binär heisst doch nur, das ein int i = 9 nicht
als zeichen, sondern im binären wert (also 4 byte) gespeichert wird.
Ein char ist und bleibt 1 Byte...Du kannst die Daten aber z.B. verschlüsseln.
Dafür hab ich mal nen Filestream geschrieben, welcher auf die iostreams der stl aufbaut. (lies evtl. den Artikel in der FAQ dazu)
FileCryptDevil
-
2oopuls schrieb:
Wow, besten Dank. Ich habe jetzt mal die Datei, die ich oben als Beispiel
gepostet habe zu .bmp umbenannt und siehe da, es ist tatsächlich ein Bild
mit verstecken Informationen.Da gibt dir jemanden nen Rat wie du Dateien vor Zugriffen
schützen kannst und du schreibst sowas.

-
Zyniker schrieb:
2oopuls schrieb:
Wow, besten Dank. Ich habe jetzt mal die Datei, die ich oben als Beispiel
gepostet habe zu .bmp umbenannt und siehe da, es ist tatsächlich ein Bild
mit verstecken Informationen.Da gibt dir jemanden nen Rat wie du Dateien vor Zugriffen
schützen kannst und du schreibst sowas.

Sorry vielmals, wieso schreib ich sowas? Der Rat war super und
ich kenne den Artikel von codeproject. Ich war halt nur überrascht,
das die Save Datei von einem Programm auf meinem Rechner gleich
diese Methode verwendet.@devil81, danke dir, ich werds mal testen.
-
IMHO verwenden viele auch serialisierung um Daten zu speichern.
Da steht dann auch fast nichts im klartext. Kann ich aber bei einem CString nicht sagen ob es da auch so ist.
Teste es einfach mal.
So eine Applikation mit Ser. ist ja in 10 MIn gemacht.
-
Morning,
ich hab mir jetzt überlegt, das es doch reichen müsste, jedes Zeichen
um einen beliebigen Faktor zu erhöhen. Das wäre zwar nicht für
Passwörter geeignet, ist aber auch nicht von jedem Texteditor lesbar.CString encode; encode = "Dieser Klartext soll nicht gleich lesbar sein."; for (unsigned int i = 0; i < encode.GetLength(); i++) { encode.SetAt( i , encode.GetAt( i ) + 10 ); }Wäre nur die Frag, ob das auf kurz oder Lang der ascii Zeichensatz
mitmacht.
-
die ASCII-Teichen machen es mit, wenn sie am ende sind, wird einfach wieder am anfang angefangen, sollte der gespeicherte text aber etwas länger sein, knack man sowas mit nem kaffee, papier und bleistift