c# - 如何将 XML 写入加密文件?

标签 c# xml encryption

我需要将 XML 数据写入加密文件。我可以读/写加密文件,但我无法弄清楚如何跳过文件输入部分并从 MemoryStream 对象执行此操作。

这就是我目前所拥有的。基本上我只需要获取一个 Byte[] 来对其执行我的标准加密。

感谢您的宝贵意见。我将很快对此进行测试。

编辑:测试后,当我尝试关闭内存流对象时出现“无法访问已关闭的流”异常。

MemoryStream ms = new MemoryStream();
XmlTextWriter xmlwriter = new XmlTextWriter(ms,Encoding.ASCII);
FileStream EncryptedFileStream = new FileStream(file, FileMode.Create, FileAccess.Write);

DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes("AAAAAAAA");
DES.IV = ASCIIEncoding.ASCII.GetBytes("AAAAAAAA");

ICryptoTransform desEncrypt = DES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(EncryptedFileStream, desEncrypt, CryptoStreamMode.Write);

//create xml document

byte[] bytearray = new byte[ms.Length];
ms.Read(bytearray, 0, bytearray.Length);

cryptostream.Write(bytearray, 0, bytearray.Length);

cryptostream.Close();
ms.Close();
EncryptedFileStream.Close();

最佳答案

写入 MemoryStream 并使用 MemoryStream.ToArray()

关于c# - 如何将 XML 写入加密文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538676/

相关文章:

c# - 客户端/服务器,加密通信

java - 用 Java 解密 AES 编码的消息(用 Python 加密)

java - 如何在 java 服务器端解密 cryptojs AES 加密消息?

c# - 处理器数量是否会影响 ASP.NET MVC 4 Web 应用程序中异步线程的性能?

C# - 向下舍入到最接近的整数

java - 如何在 Java 中解析高级 XML 文件

java - xstream 序列化堆空间

c++ - Windows 上的任何原生 XML DOM 都可以控制内存分配吗?

c# - 在 xsl 转换后将 <?xml version ="1.0"?> 添加到 xml 文件的顶部

c# - 在 JavaScript 函数中访问 C# 方法