0
我们正在尝试对一个xml文件进行哈希处理,我已经使它散列了XML的内容。 对此我用下面的代码:C#哈希完整xml
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(txtFile.Text);
XmlNodeList list = doc.GetElementsByTagName("Document");
XmlElement node = (XmlElement)list[0];
//node.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
string s = node.OuterXml;
using (MemoryStream msIn = new MemoryStream(Encoding.UTF8.GetBytes(s)))
{
XmlDsigC14NTransform t = new XmlDsigC14NTransform(true);
t.LoadInput(msIn);
using (var hash = new SHA256Managed())
{
byte[] digest = t.GetDigestedOutput(hash);
txtHash.Text = BitConverter.ToString(digest).Replace("-", String.Empty);
}
}
然而,这只是散列XML的内容。 我需要的是哈希完整的XML而不是仅仅内容。
如果我们只散列内容,我们的散列不会与我们得到的控件进行比较。
你的意思一样,打开文件,并没有将其读入的XmlDocument的实例哈希的内容? – Matten