c# - 我可以在离线场景中为 xml 文件使用什么加密解决方案?
问题描述
我们的应用程序有一个 xml 文件,其中包含应用程序正常工作的信息。该文件由我们的 Web api 服务器生成并发送到客户端应用程序。客户端应用程序需要能够读取此文件,但我们不希望我们的用户看到或修改它。该文件在他们的文件系统中存在一段时间,而他们需要从中读取。在这种情况下,它们与 Internet 或网络断开连接。我们当然可以在发送之前在我们的服务器上对其进行加密,但问题仍然是关于解密的。
如果我使用公钥/私钥方法,这是一种毫无意义的努力,因为我必须将私钥存储在客户端的某个地方。我的另一个问题是,以这种方式,为什么我需要将公钥存储在服务器上?(尤其是当再次从服务器请求该文件时,使用新的私钥/公钥对经常生成此文件时)。
我可以使用对称算法,但我必须再次与客户端存储一些东西。
我还考虑过只为文件生成一个哈希,但是我必须再次将盐存储在客户端以计算相同的哈希并比较文件是否被篡改(因此不提供加密,但至少是一种方法知道它已被修改)。
归根结底,我正在寻找一种解决方案,让我们的用户不会看到明显的东西。
我已经阅读了 Msdn 和 SO 文章上的所有 XMLEncryption 内容,这些都需要某种类型的密钥管理,但是对于这种情况还有其他解决方案吗?还是我被困在与客户端存储私钥以便他们可以解密文件?
解决方案
推荐阅读
- javascript - 优化嵌套循环以从数组中过滤包含特定值的对象
- android - Android - ConstraintLayout 以编程方式设置百分比高度?
- java - JFrame 总是在顶部,但在另一个 jframe 之下?
- java - 如何在活动启动时延迟计时器?
- azure - 最大文件上传大小 Azure Web 应用程序防火墙 WAF
- perl - 如何使用 Perl5-IDEA 在 Apache 下调试 Perl?
- c# - 插入语法句子有问题如何解决?
- azure-data-factory - 使用查找活动在 Azure 数据工厂中动态分配导入架构“表达式”中的源列
- c# - Excel 查找和替换对话框显示默认文本
- swift - 缓存表视图内的集合视图的图像