Запретить пользователю редактировать текстовый файл при закрытии программы

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

Некоторые вещи для рассмотрения:
— Я хочу, чтобы это решение было переносимым (хорошо, не мультиплатформенным, только на Windows, но я не хочу никаких настроек безопасности, которые мне пришлось бы устанавливать вручную или зависеть от дополнительного программного обеспечения)
— Метод предотвращения не должен быть экстремальным, мне просто нужно, чтобы он не был тривиальным, как открытие текста и его свободное редактирование.

Каков мой текущий план:
— Я хочу замаскировать данные шифром, который программа встроила при чтении / записи, и, таким образом, затруднить редактирование при сохранении ключа.
— Я буду выполнять проверку данных @ время чтения, чтобы подтвердить и ключ шифра, и, конечно, что данные верны.

Моя проблема:
— Пользователь может открыть текст и изменить значение на другой законных данных

Что бы я хотел:
— Некоторые мьютексы, такие как блокирующая функциональность, которую windows api будет поддерживать, чтобы я мог создавать переносимый код (на платформе Windows), чтобы пользователь мог работать так же долго, как и при распространении Visual C ++. (Но я возьму любую помощь)

Спасибо за прочтение, надеюсь увидеть вклад 🙂

РЕДАКТИРОВАТЬ:

Мне было интересно, так как zip по умолчанию поддерживается платформами Windows, есть ли способ записи в контейнер .zip, который может быть зашифрован при создании .zip и затем доступен в программе с помощью ключа? Я думаю, что это было бы идеальным решением, если это выполнимо

0

Решение

Я не уверен, возможно ли это вообще, поэтому я предлагаю зашифровать данные, которые вы хотите сохранить в файле .txt.

Ниже приведен простой алгоритм шифрования XOR. Если вы хотите расшифровать данные, просто запустите метод снова с зашифрованной строкой.

std::string crypt(std::string str, char key) { // If you want to, you can apply proper const-ness
std::string result = str; // Create a result string
for (int i = 0; i < result.size(); i++) result[i] = str[i] ^ key; // For every character in the string XOR it with the key
return result; // Return the result
}

Я надеюсь, что это помогло вам.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]