1

我有一个连接到几个数据库的 winforms 应用程序。但是,即使用户未连接到互联网,我也希望使用我的应用程序。我一直在本地将数据集写入 XML 文件并根据用户偏好读取它们,无论是从数据库下载还是使用本地数据文件。

DataSet.WriteXml(localPath)

随着应用程序的改进,我想加密 XML 文件以防止用户查看内部(那里有一堆数据,但应用程序根据分配给用户的访问级别选择性地显示数据)。我查看了“Rijndael Managed”并得到了一个基于VB.NET 中的加密/解密文件的原型。我无法弄清楚如何在没有将它们保存到磁盘的情况下将流传递给密码学类。

现在,我将 Dataset 中的 xml 文件保存到一个临时目录并构建一个新流并将其传递给 CrypotoStream,然后将加密文件写入所需的位置。

我正在寻找一种直接传入流而不将其写入磁盘的解决方案。请建议。

4

2 回答 2

2

更好的使用方法是 EncryptedXml 类

EncryptedXml 类 加密可能需要不同的加密强度、密钥库等方法。请遵循 MSDN 文档中的示例。这不是一个简短的实现,但它工作得非常好。

其他选择

写入 MemoryStream 并使用 MemoryStream.ToArray();

读取加密流

只需使用 CryptoStream 加载数据集。

参考this like to read/decrypt 读取/解密加密的XML文件,然后在内部处理

于 2012-08-13T22:00:14.497 回答
1

听起来MemoryStream可能是您正在寻找的东西。

于 2012-08-13T21:29:57.140 回答