我需要编写一个处理简单数据库的程序。我的目标是简单地将内存中的所有数据写入.txt,然后在程序开始时将其全部读入。我希望能够防止用户在程序外编辑txt文件。
需要考虑的一些事项:-我希望这个解决方案是可移植的(不是多平台的,只是在windows上,但我不想要任何必须手动设置或额外依赖软件的安全设置)-预防的方法不需要极端,我只需要它不要像打开txt并自由编辑那样琐碎。
我目前的计划是:-我想用程序在读/写时内置的密码来屏蔽数据,这样在维护密钥的同时很难轻松编辑。-我将在读取时间进行数据验证,以确认密码密钥,当然还有数据是否合法。
我的问题:-用户可以打开txt并将值更改为另一个合法数据
我想要什么:-windows api将支持的一些类似互斥锁的锁定功能,我可以以可移植的方式(在windows平台内)编写代码,只要用户拥有可重新分发的可视化c++,他们就可以运行。(但我愿意接受任何帮助)
感谢阅读,我希望看到一些输入:)
编辑:
我想知道,由于zip默认情况下由windows平台支持,是否可以写入.zip容器,该容器可以在创建.zip时进行加密,然后在程序中使用密钥进行访问?我认为这将是一个理想的解决方案,如果它是可行的
我不确定这是否可能,所以我的建议是加密要存储在.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
}
我希望这对你有所帮助。