none
Speichern von Daten RRS feed

  • Frage

  • Hallo liebes Forum,

    ich habe früher viel mit Delphi und Datenbanken programmiert. Als neue Sprache hat mich Visual C# gereizt.

    In Visual C# kann man Daten als Text oder XML abspeichern. Aber bei diese beiden könnte jeder die Dateien mit einem Texteditor öffen und die Daten manipulieren wenn man die Dateien nicht verschlüsselt.

    Gibt es noch eine andere Möglichkeit Daten zu speichern (ausgenommen Datenbanken) ohne dass die Datei manipuliert werden kann?

    Danke für eine Antwort (oder gibt es dazu einen Link). Ich habe schon Dr. Google befragt aber bis jetzt nichts brauchbares gefunden.

    seppmerkel


    • Bearbeitet seppmerkel Montag, 20. Januar 2020 14:46
    Montag, 20. Januar 2020 14:25

Antworten

  • Hi,

    Unter manipulationssicher verstehe ich, dass die gespeicherte Datei nicht von jedem beliebigen User mit einem Texteditor geöffnet  und bearbeitet werden kann.

    nuja, es könnte auch heißen, dass Du XML/JSON/... (also Klartext) speicherst und dort zusätzliche Informationen (bspw. einen eindeutigen Hash über den Dateiinhalt, Speicherdatum, usw.) hinterlegst, so das jegliche Änderung dazu führt, dass dein Programm die Datei nicht akzeptiert.

    Die gespeicherte Datei soll nur von dem davorstehenden Programm (wie bei Excel oder Word) geöffnet werden können.

    Das kannst Du ja über ein entsprechendes Format sicherstellen. Man kann neben Json und Xml auch binär serialisieren/deserialisieren. Evtl. ist das eher etwas nach deinem Geschmack. Stichwort: C# BinaryFormatter.

    Wenn ich eine Text- oder XML- Datei verschlüssle, wäre Sie eigentlich schon sicher?

    Das kommt darauf an, wie Du verschlüsselst :) Wenn es eine sichere Methode mit sicherer Implementierung ist: Ja.

    Gibt es einen Link, wie ich ein eigenes Format erstellen kann? Weiß leider nicht wie das funkioniert.

    Das kommt darauf an, was genau Du eigentlich machen willst.

    Wie werden Excel- oder Word-Dateien gespeichert? Binär?

    Jein. Benenn eine .docx oder .xlsx mal in .zip um und entpack diese dann. Bei früheren Versionen .doc, .xls, ...) geht das nicht, die wurden binär gespeichert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 20. Januar 2020 18:10
    Moderator

Alle Antworten

  • Hi,

    Daten kann man (in jeder Programmiersprache, die das auch nur irgendwie hergibt) in beliebiger Form speichern.

    Deine Frage ist daher eigentlich falsch gestellt.

    Was genau schwebt dir vor? Willst Du die Daten verschlüsseln? Oder als Klartext speichern aber manipulationssicher abspeichern? (Falls letzteres: Was genau verstehst Du in deinem Fall unter "manipulationssicher"? Für wen bzw. welche Anwendung[en] sollen die Daten "manipulationssicher" sein?)

    Um nur ein paar Beispiele aufzuzählen:

    Speichern in Dateisystem (txt, json, xml, eigenes Format, binär oder in Textform, ...)

    Datenbank (SQLite, SQL Server, Access, Excel, Oracle, MySQL, Postgre, ...)

    Web (API, Webservices, Handler, ...)

    Wenn Du es selbst implementierst, sind deiner Freiheit nur wenige Grenzen gesetzt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 20. Januar 2020 17:00
    Moderator
  • Hallo Stefan,

    danke für Deine Antwort.

    Unter manipulationssicher verstehe ich, dass die gespeicherte Datei nicht von jedem beliebigen User mit einem Texteditor geöffnet  und bearbeitet werden kann.

    Die gespeicherte Datei soll nur von dem davorstehenden Programm (wie bei Excel oder Word) geöffnet werden können.

    Wenn ich eine Text- oder XML- Datei verschlüssle, wäre Sie eigentlich schon sicher?

    Gibt es einen Link, wie ich ein eigenes Format erstellen kann? Weiß leider nicht wie das funkioniert.

    Wie werden Excel- oder Word-Dateien gespeichert? Binär?

    Vorerst Danke

    seppmerkel


    • Bearbeitet seppmerkel Montag, 20. Januar 2020 17:22
    Montag, 20. Januar 2020 17:21
  • Hi,

    Unter manipulationssicher verstehe ich, dass die gespeicherte Datei nicht von jedem beliebigen User mit einem Texteditor geöffnet  und bearbeitet werden kann.

    nuja, es könnte auch heißen, dass Du XML/JSON/... (also Klartext) speicherst und dort zusätzliche Informationen (bspw. einen eindeutigen Hash über den Dateiinhalt, Speicherdatum, usw.) hinterlegst, so das jegliche Änderung dazu führt, dass dein Programm die Datei nicht akzeptiert.

    Die gespeicherte Datei soll nur von dem davorstehenden Programm (wie bei Excel oder Word) geöffnet werden können.

    Das kannst Du ja über ein entsprechendes Format sicherstellen. Man kann neben Json und Xml auch binär serialisieren/deserialisieren. Evtl. ist das eher etwas nach deinem Geschmack. Stichwort: C# BinaryFormatter.

    Wenn ich eine Text- oder XML- Datei verschlüssle, wäre Sie eigentlich schon sicher?

    Das kommt darauf an, wie Du verschlüsselst :) Wenn es eine sichere Methode mit sicherer Implementierung ist: Ja.

    Gibt es einen Link, wie ich ein eigenes Format erstellen kann? Weiß leider nicht wie das funkioniert.

    Das kommt darauf an, was genau Du eigentlich machen willst.

    Wie werden Excel- oder Word-Dateien gespeichert? Binär?

    Jein. Benenn eine .docx oder .xlsx mal in .zip um und entpack diese dann. Bei früheren Versionen .doc, .xls, ...) geht das nicht, die wurden binär gespeichert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 20. Januar 2020 18:10
    Moderator
  • Hallo Stefan,

    jedenfalls vielen Dank für Deine ausführliche Antwort.

    Jetzt ist es mir schon klarer.

    Schönen Tag noch

    seppmerkel

    Montag, 20. Januar 2020 19:00