Dateien, die man von Außen nicht öffnen kann?
-
Hallo zusammen,
man kann ja mit C recht simpel Dateien erstellen, auslesen, beschreiben. Ist es irgendwie möglich, diese erstellten Dateien (z.B. .txt oder .tmp) so zu sichern oder zu verschlüsseln, das man diese von Außen nicht mehr öffnen kann? D.h. nur mein Programm kann diese Dateien auslesen und ein Doppelklick bzw. öffnen mit dem Editor würde die Aussage "Datei kann nicht geöffnet werden bringen". Ist das irgendwie möglich?
Mir geht es halt darum, dass nur ich die Codes die in dem File drin stehen lesen und bearbeiten kann. Ich will das Teil vor Manipulation schützen.MfG
-
Kurze Antwort: Nein.
Lange Antwort: Wer auf welche Dateien zugreift, bestimmt prinzipiell das Betriebssystem. Mehr noch: wenn jemand physischen Zugriff auf den Rechner hat, kann er das Betriebssystem ohne große Probleme austauschen (beispielsweise in Knoppix booten). Wo das nicht der Fall oder das gesamte Dateisystem verschlüsselt ist, gibt es Systeme, die derartige Zugriffsbegrenzungen erlauben (etwa SELinux), aber wer worauf zugreifen kann, liegt dann in der Hand des Systemadministrators, nicht in der des Programmierers.
Was du machen kannst, ist, den Dateiinhalt zu verschleiern. Denkbar wäre, dem Programm einen Schlüssel einzukompilieren und die Daten in der Datei damit zu verxoren (oder auch komplexere Verschlüsselungsmethoden anzuwenden, obwohl der Sinn des Unterfangens aus nachfolgend genannten Gründen begrenzt ist), aber grundsätzlich hast du das selbe Problem wie DRM generell: Es ist informationstheoretisch nicht möglich. Du musst mit den verschlüsselten Daten auch den Schlüssel ausliefern, und dann ist es nur eine Frage davon, wann der erste Cracker sich daransetzt, deine Maßnahme zu knacken.
Andererseits ist es meistens gar nicht notwendig, einen solchen Aufriss zu betreiben; für die meisten Benutzer wird es schon langen, die Datei einfach als versteckt zu markieren. Kannst du den Anwendungsfall vielleicht etwas genauer beschreiben?
-
danke sehr, dass hat mir schon geholfen - mit versteckte dateien sollte es eigentlich auch voll ausreichen. ich schreibe meine diplomarbeit über erzeugung einzigartiger codes und der verwaltung dieser codefiles. naja und im endeffekt sollen die Codes nach positiver Beendigung der ICs im Final Test draufgeschrieben werden. Da man aber von den Testern jederzeit auf die PLatte mit den Codefile zugreifen kann, besteht das Risiko das ausversehen jmd die datei anklickt und löscht oder sowas. aber is die datei versteckt is das risiko ja eigentlich nicht mehr gegeben.
wie kann man denn über C eine datei erstellen, die direkt versteckt wird?
-
xoosksicskoox schrieb:
wie kann man denn über C eine datei erstellen, die direkt versteckt wird?
Vermutlich gar nicht, da musst du das Betriebssystem Fragen (z.B. die WinAPI).
Wenn du aber versehentliches Löschen verhindern möchtest, dann halte die Datei einfach offen und schließe den FILE* erst nach Beendigung des Programms.
-
mit Datei offen halten bringt in dem Sinne jetzt nix, weil die Dateien ja auch geschützt werden sollen, wenn das Programm bzw. der Tester mal nicht laufen.
-
Unter Windows ist SetFileAttributes dein Freund, unter UNIX ist eine Datei per Konvention dann versteckt, wenn der Dateiname mit . beginnt. Es könnte auch sinnvoll sein, die Datei als read-only zu markieren.
Ansonsten natürlich: Backups! Womöglich ist auch Versionskontrolle einen Gedanken wert.
-
danke dir
-
Ich glaube du suchst was ganz anderes. Wenn sowieso ein Betriebssystem lauft, das eine Rechteverwaltung durchsetzt, gibt es auch so etwas wie "schreibgeschützt" oder auch gleich Rechteverwaltung nach Nutzer(gruppe).
Und Backups.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Themen rund um den PC verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
xoosksicskoox schrieb:
danke sehr, dass hat mir schon geholfen - mit versteckte dateien sollte es eigentlich auch voll ausreichen. ich schreibe meine diplomarbeit über erzeugung einzigartiger codes und der verwaltung dieser codefiles.
Wenn die Verwaltung dieser Codefiles ein Teilthema deiner Diplomarbeit ist, dann würde ich mir aber mehr Mühe geben als in einem Forum zu fragen.
Also entweder eine sichere Lösung finden oder eben schreiben "das kann man nicht sicher machen, weil die Codes vom Programm auch wieder gelesen werden können müssen". So ein Hack wie Dateien verstecken ist natürlich völlig unsicher in jeder Hinsicht, und meines Erachtens keine Lösung, die in einer Diplomarbeit erwähnenswert wäre.