禁止用户在程序关闭时编辑文本文件

时间:2014-04-13 12:34:01

标签: c++ windows data-protection

我需要编写一个处理简单数据库的程序。我的目标是简单地将内存中的所有数据写入.txt,然后在程序启动时将其全部读入。我希望能够阻止用户编辑程序外的txt文件。

要考虑的一些事项: - 我希望这个解决方案是可移植的(不是多平台,只是在Windows上,但我不希望任何安全设置,我必须手动设置或额外的软件相关) - 预防方法不需要极端,我只需要打开txt并自由编辑就不需要了。

我目前的计划是: - 我想用一个程序在读/写时内置的密码掩盖数据,因此在维护密钥时很难轻松编辑。 - 我将在@读取时间进行数据验证,以确认密钥密钥,当然还有数据是合法的。

我的问题: - 用户可以打开txt并将值更改为其他合法数据

我想要什么: - 一些互斥锁,比如windows api支持的锁定功能,我可以用便携式方式(在windows平台内)进行编码,用户只要拥有可视化c ++可再发行组件就可以运行。 (但我会接受任何帮助)

感谢您的阅读,我希望看到一些输入:)

编辑:

我想知道,因为默认情况下,Windows平台支持zip,无论如何都要写入.zip容器,该容器可以在创建.zip时加密,然后在程序中使用密钥进行访问?我认为如果可行的话,这将是一个理想的解决方案

1 个答案:

答案 0 :(得分:1)

我不确定这是否可能,所以我的建议是加密要存储在.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
}

我希望这对你有所帮助。