我们的应用程序有一个xml文件,其中包含使应用程序正常运行的信息。该文件由我们的Web api服务器生成,并发送到客户端应用程序。客户端应用程序需要能够从该文件读取,但是我们不希望用户看到或修改它。该文件在其文件系统中存在一段时间,而他们需要从该文件中读取。在这种情况下,它们与Internet或网络断开连接。我们当然可以在发送之前在服务器上对其进行加密,但是问题仍然在于解密。
如果我使用公共/私有密钥方法,这是没有意义的工作,因为我必须将私有密钥存储在客户端的某个位置。我的另一个问题是以这种方式,为什么我需要将公用密钥存储在服务器上? (尤其是当再次从服务器请求文件时,经常用新的私钥/公钥对生成此文件的时候。)
我可以使用对称算法,但是同样,我必须与客户端存储一些东西。
我还考虑过只为文件生成一个哈希,但是同样,我将不得不与客户端存储盐以计算相同的哈希,并比较文件是否被篡改(因此不提供加密,但至少一种了解它的方式已被修改)。
最终,我正在寻找一种解决方案,以防止用户 看到明显的事实。
我已经阅读了Msdn和SO文章中的所有XMLEncryption内容,这些都需要某种形式的密钥管理,但是对于这种情况,还有其他解决方案吗?还是我一直在与客户端存储私钥,以便他们可以解密文件?