当前位置: 首页 > 知识库问答 >
问题:

读取/解密加密的XML文件,然后进行内部处理

华坚成
2023-03-14

我在过去使用过这段代码来编写和读取xml文件。这次我想编写一些加密生成的XML,然后读取它并在内部进行处理。我会发布代码,也许有人能发现问题。

当我测试解密时,我已经能够输出一个有连续行空字符代码的文件。加密文件似乎包含数据和不同数据量的大小变量。

请帮忙,谢谢!

MemoryStream ms = new MemoryStream();
XmlTextWriter xmlwriter = new XmlTextWriter(ms,Encoding.UTF8);
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 working and tested XML data here*/


byte[] bytearray = new byte[ms.Length];


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

cryptostream.Close();

EncryptedFileStream.Close();

xmlwriter.Close();
ms.Flush();
ms.Close();
MemoryStream ms = new MemoryStream();
StreamWriter swDecrypt = new StreamWriter(ms);

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

ICryptoTransform desDecrypt = DES.CreateDecryptor();

FileStream fsDecrypt = new FileStream(mstrIndexFile, FileMode.Open, FileAccess.Read);

CryptoStream cryptostreamDecr = new CryptoStream(fsDecrypt, desDecrypt, CryptoStreamMode.Read);

swDecrypt.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
swDecrypt.Flush();
ms.Position = 0;

共有1个答案

许庆
2023-03-14

使用当前的体系结构,您需要使用刚刚填充了数据的MemoryStream(不要忘记将其位置重置为零并清除任何挂起的写操作)

//I am currently stuck on this point.
swDecrypt.Flush();
ms.Position=0;
XmlTextReader lxmlReader = new XmlTextReader(ms);

不过,我的感觉是,这里不需要MemoryStream。相反,只需将CryptoStream提供给XMLTextReader:

CryptoStream cryptostreamDecr = new CryptoStream(.....
XmlTextReader lxmlReader = new XmlTextReader(cryptostreamDecr);
 类似资料:
  • 我想收集数据,并在一个加密的文件中写入使用公钥(在Android中)。然后将文件发送到PC机读取。在我的PC中,我也需要创建一个应用程序来解密文件。我该如何做以及如何安全地共享密钥?

  • 我不完全确定我该做什么了。我一直在网上到处乱翻东西,通读例子,但它们似乎都是如何加密一整个文件,或者只是加密一段数据,除了立即再次解密之外什么也不做。我该如何处理逐行书写?

  • 本文向大家介绍C#对文件进行加密解密代码,包括了C#对文件进行加密解密代码的使用技巧和注意事项,需要的朋友参考一下 加密代码 解密代码如下 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍C#实现对文件进行加密解密的方法,包括了C#实现对文件进行加密解密的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现对文件进行加密解密的方法。分享给大家供大家参考。具体如下: 解密代码如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍java使用异或对文件进行加密解密,包括了java使用异或对文件进行加密解密的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 3.使用异或的原理解密文件 以上就是本文的全部内容,希望对大家的学习有所

  • 问题内容: 我有一个正在下载xml并将其解析为sql数据库的应用程序。我的问题是,一旦部署了应用程序,xml中的数据就很容易被抓取,其他人可能将我辛苦赚来的数据用于自己的邪恶目的/应用程序。基本上我需要使用php加密xml,然后使用android解密。我已经看过几个php类,它们可以很容易地加密,但是我不完全确定哪种加密方法与android兼容。 解决后编辑: 起初,我认为出于某种原因我不得不忽略