2016-12-31 5 views
0

Gibt es eine Möglichkeit in C++, Datei nur für Programm lesbar zu machen, ohne es zu verschlüsseln? Ich möchte eine Datei erstellen, die wenige Textzeilen enthält, die das Programm liest, aber der Benutzer muss es nicht mit einfachen Prog lesen können. wie "Notepad ++".Datei nur für Programm lesbar machen

+7

Verwendung der ** Standardsprache ** C++ nicht. Dateiattribute und Berechtigungen sind ein Betriebssystemproblem. Nachschlagen API für Ihr Betriebssystem. Möglicherweise können Sie stattdessen ein Framework oder eine portable Bibliothek verwenden. –

+0

Auf Unix wird dies normalerweise getan, indem das Programm setuid oder setgid gemacht wird und der Datei derselbe Eigentümer/Gruppe wie dem Programm gegeben wird. Das Erstellen von setXid-Programmen erfordert jedoch besondere Sorgfalt. – Barmar

Antwort

0

Einfach: Erstellen Sie Ihr eigenes Binärformat anstelle der üblichen Textdateien. Das heißt, Sie könnten die Bytes auf reversible Weise durcheinanderbringen (ich habe sogar einen sehr einfachen Vorschlag dafür).

+6

Das ist immer noch Verschlüsselung. Es ist nur eine wirklich schlechte Form der Verschlüsselung. –

+0

Nun, entweder Verschlüsselung oder Berechtigungen, obwohl Berechtigungen nur pro Benutzer, nicht pro Programm, in aktuellen Betriebssystemen handeln können (Android ist eine bemerkenswerte Ausnahme, wo jede App eine eigene Benutzerkennung auf dem System hat) –

+3

Verschlüsselung wird nicht nur verwendet um Dateien von zB NSA oder ähnlichem zu sichern, wird es nur verwendet, um etwas auf eine andere Weise darzustellen. Wenn Sie nicht möchten, dass Benutzer Ihre Dateien auf ihrem Computer sehen, um sie zu ändern, ist es am besten, sie in binärer Form und nicht im Klartext zu speichern. Mit einem guten Binärformat erreichen Sie möglicherweise sogar ein schnelleres Parsen der Daten. Das ist meiner Meinung nach keine schlechte Form der Verschlüsselung. – rlam12

4

Als eine Frage von reinem C++, nein.

In Bezug auf Betriebssysteme, im Allgemeinen, nein. Wenn es sich um eine Datei auf der Festplatte handelt, wird es in den meisten Betriebssystemen als faires Spiel angesehen. Betriebssysteme haben oft Möglichkeiten, Dateien zu verstecken, aber Benutzer können diese umgehen. Es gibt Berechtigungssysteme, die Zugriffe auf bestimmte Benutzer einschränken können. Aber ein Benutzer mit root-/admin-Rechten kann ziemlich genau das tun, was er will.

Nun können einige mobile Betriebssysteme give your app some storage that canonly be read by your app, so dass andere Anwendungen nicht lesen/schreiben können, wie sie es für richtig halten. Dies sind jedoch Aspekte von Betriebssystem-spezifischen APIs.

Und diese Schemata sind nicht perfekt.

Verwandte Themen