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.gif

    Wie 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.gif

    Wie 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)
    FileCrypt

    Devil



  • 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


Anmelden zum Antworten