我有一个连接到几个数据库的winforms应用程序。但是,即使用户未连接到互联网,我也希望使用我的应用。我一直在本地将数据集写入XML文件,并根据用户首选项读取它们,以确定是从数据库下载还是使用本地数据文件。从数据集中加密XML文件
DataSet.WriteXml(localPath)
随着应用也在不断提高,我想加密的XML档案,防止用户从内部看(这里有一组数据在那里,但根据分配给用户的访问级别的应用选择性地显示数据)。我查看了'Rijndael Managed'并获得了基于Encrypt/Decrypt Files in VB.NET的原型工作。我一直无法想象如何将流传递给密码学类,而不必将它们保存到磁盘中。
现在,我xml文件出数据集保存到一个临时目录并建立一个新的流,并将它传递到CrypotoStream然后写入加密文件到所需的位置。
我正在寻找一种解决方案,直接在流中传递而无需将其写入磁盘。请建议。
有DataSet.WriteXml的形式接受一个流。使用它来写入一个MemoryStream,然后将该流提供给您的加密类。您不应该使用RjindaelManged,因为它会在特定环境中生成安全警告,请改用AesManaged。 – JamieSee 2012-08-13 21:37:58