0

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

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

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

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

我想要什么: - 一些互斥锁,例如 windows api 将支持的锁定功能,我可以以可移植方式(在 windows 平台内)进行编码,只要用户具有可重新分发的可视 c++ 即可运行。(但我会采取任何帮助)

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

编辑:

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

4

1 回答 1

2

我不确定这是否可能,所以我的建议是加密要存储在 .txt 文件中的数据。

下面是一个简单的异或加密算法,如果要解密数据,只需用加密后的字符串再次运行该方法即可。

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
}

我希望这对你有所帮助。

于 2015-06-03T00:18:48.863 回答