从数据集加密XML文件

时间:2012-08-13 21:22:03

标签: c# .net vb.net winforms

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

DataSet.WriteXml(localPath)

随着应用程序的改进,我想加密XML文件以防止用户查看内部(其中有大量数据,但应用程序根据分配给用户的访问级别有选择地显示数据)。我调查了'Rijndael Managed'并根据Encrypt/Decrypt Files in VB.NET得到了一个原型。我无法想象如何将流传递给加密类而不将它们保存到磁盘。

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

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

2 个答案:

答案 0 :(得分:2)

使用的更好的方法是EncryptedXml类

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

其他替代方案

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

读取加密流

只需使用CryptoStream加载DataSet。

指的是喜欢阅读/解密 Read/decrypt encrypted XML file and then process internally

答案 1 :(得分:1)

MemoryStream之类的声音可能正是您所寻找的。