永久保存数据

时间:2012-10-03 15:16:35

标签: c++

我正在使用qt开发一个项目,我需要永久保存数据(文件路径和密码)以便我可以随时获取或修改它,即使我退出应用程序并重新运行它。 我想用加密的xml文件来解决它,但我想在没有跟踪的情况下进行解决。

2 个答案:

答案 0 :(得分:2)

当然不可能在没有痕迹的情况下在计算机上保存某些东西。 root用户可以看到所有内容。

但是如果您不想让其他人更改它,您可以加密它,隐藏它并将其设置为只读和root编辑权限。但不要让任何人发现这是不可能的。 (你试图制造病毒吗?)即使你放入BIOS,也有办法找到它。

答案 1 :(得分:2)

您可以使用文件或其他特定于平台的数据库机制,例如Windows'注册表中。但那会留下痕迹;您不希望在本地存储某些内容并且不会在没有root操作系统的情况下留下痕迹(即使这会在硬件中留下痕迹,毕竟,您正在将数据写入驱动器)。

您可以希望在不留下痕迹的情况下做的一件事是通过网络将数据远程存储在某个服务器中,因为网络活动通常不会被记录(但可以被观察到),但我可以看到2个问题方法:

1)它可能会给您的用户带来一些隐私问题(如果我是您的应用程序的用户,我也不希望看到我的数据通过网络发送到未知服务器);

2)您如何识别信息以便检索?您可以使用一些带有用户名和计算机硬盘驱动器ID以及网络接口MAC地址的哈希值,但如果其中一些更改,则数据将丢失。您还可以为应用程序的每个安装生成一个唯一的ID,但它需要您在本地存储该ID,而这将是一个跟踪

防止读取/篡改数据的本地加密本质上是不安全的,因为您需要有一些可重复的方法来检索密钥。你会怎么做?如果您只是在应用程序中对其进行硬编码,则可以通过某些二进制文件读取器轻松检索。出于显而易见的原因,它不能位于名为' key.txt'的文件中。您可以使用一些复杂的算法在运行时计算它,但是您总是需要将它在某个时刻加载到内存中,从那里可以自愿地检索它。