我需要编写一个处理简单数据库的程序。我的目标是简单地将内存中的所有数据写入.txt,然后在程序启动时将其全部读入。我希望能够阻止用户编辑程序外的txt文件。
要考虑的一些事项: - 我希望这个解决方案是可移植的(不是多平台,只是在Windows上,但我不希望任何安全设置,我必须手动设置或额外的软件相关) - 预防方法不需要极端,我只需要打开txt并自由编辑就不需要了。
我目前的计划是: - 我想用一个程序在读/写时内置的密码掩盖数据,因此在维护密钥时很难轻松编辑。 - 我将在@读取时间进行数据验证,以确认密钥密钥,当然还有数据是合法的。
我的问题: - 用户可以打开txt并将值更改为其他合法数据
我想要什么: - 一些互斥锁,比如windows api支持的锁定功能,我可以用便携式方式(在windows平台内)进行编码,用户只要拥有可视化c ++可再发行组件就可以运行。 (但我会接受任何帮助)
感谢您的阅读,我希望看到一些输入:)
编辑:
我想知道,因为默认情况下,Windows平台支持zip,无论如何都要写入.zip容器,该容器可以在创建.zip时加密,然后在程序中使用密钥进行访问?我认为如果可行的话,这将是一个理想的解决方案
答案 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
}
我希望这对你有所帮助。