保护外部数据文件免遭未经授权的修改

时间:2017-03-13 02:30:59

标签: c++ qt

我还在学习QT,我想到了这个问题:如果我设计一个程序并希望保存和保护一些数据,那么我从QT Creator应用程序保存数据的所有方法都写入文件中可以轻松更改和删除。有没有什么方法可以安全地存储一些应用程序数据,没有其他人可以在不破坏应用程序的情况下访问它?

这可能是一个愚蠢的问题,但我实际上期待一些想法。 非常感谢。

1 个答案:

答案 0 :(得分:0)

无法使不可能为具有root / administrator访问权限的用户重写数据。但是,您可以使应用程序拒绝未经授权的更改并退出。

假设您想要一个只能在应用程序中更改的外部数据文件,您可以执行以下操作:

每次应用程序更改数据文件时,计算数据的哈希值,加密数据并将其存储在数据文件中。每次读取数据时,首先散列数据,然后读入存储的散列,解密并将其与数据散列进行比较。如果不相同,请退出该应用程序。

这样,如果有人从外部进行任何更改,他将无法为数据文件提供准确的加密哈希值,因此哈希检查将失败。只有拥有密钥的人才能进行应用程序可以接受的更改。