Обеспечение целостности файлов - PullRequest
1 голос
/ 10 января 2010

Я работал над проектом на C ++ с использованием openGL и собираюсь сохранить текущую сцену в текстовый файл. Что-то простое по линиям, куб в x, y, z и его цвет и т. Д.

Мой вопрос о том, как убедиться, что файл не был изменен пользователем. Я думал о том, чтобы вычислить контрольную сумму строки и включить ее в файл.

например. контрольная сумма, строка

Но опять же, это открыто для пользователя, изменяющего значения.

Любые рекомендации или это просто случай написания хорошего парсера?

Приветствия

Ответы [ 3 ]

3 голосов
/ 10 января 2010

теоретически: вы не можете.

практически: зашифруйте его и запутайте ключ в вашей программе (так работает DRM)

хотя вы никогда не сможете остановить определенного пользователя. Почему это так важно, что пользователь не может изменить его?

Если вы хотите, чтобы пользователи могли читать, но не изменять, сделайте в последней строке HMAC файла и секретный ключ.

1 голос
/ 10 января 2010

Вместо того, чтобы предотвращать изменение файла пользователем, лучше проверить содержимое файла перед его использованием. Создайте хороший анализатор, способный обнаруживать (и исправлять?) Ошибки.

Позвольте пользователю делать все, что он хочет, потому что некоторые ошибки могут быть исправлены. Дайте предупреждения. С помощью хеширования вы помешаете своим пользователям делать что-либо.

0 голосов
/ 10 января 2010

Насколько строго вы требуете, чтобы файл не изменялся пользователем? То есть, сколько усилий вы готовы потратить, чтобы убедиться, что пользователь не может повозиться с файлом? Должен ли файл быть читаемым пользователем? Если вы действительно не хотите, чтобы пользователь изменил файл, возможно, какое-то шифрование является ответом (при условии, что пользователю не нужно иметь возможность читать файл). Что-то вроде этой простой схемы шифрования XOR может быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...