我在尝试计算XML文件的哈希MSD5时遇到了麻烦。 我有一个第三方验证器,它正确计算它,我想在c#中使自己的验证程序,但它不工作,我不断得到一个无效的散列MD5与大XML文件,小文件工作正常。大文件有大约63000行。创建XML文件的哈希MD5
在C#代码:
public string GenerateHash(string xml, string hashOrigin = null)
{
XDocument doc = XDocument.Parse(xml);
StringBuilder sb = new StringBuilder();
string pKeyEncode = doc.Root.Value;
if (!string.IsNullOrEmpty(hashOrigin))
pKeyEncode = pKeyEncode.Replace(hashOrigin, "");
MD5CryptoServiceProvider _cs = new MD5CryptoServiceProvider();
byte[] _bs = Encoding.GetEncoding("ISO-8859-1").GetBytes(pKeyEncode);
_bs = _cs.ComputeHash(_bs);
StringBuilder _s = new System.Text.StringBuilder();
foreach (byte _b in _bs)
{
_s.Append(_b.ToString("x2").ToLower());
}
int a = _s.GetHashCode();
return _s.ToString();
}
那么,有什么问题? –
将您正在输入的字节分离为'ComputeHash',并将它们与您在Delphi程序中所做的对比。我们无法为您调试。 –
C#的哈希值与验证器不同,当我尝试更小的文件时,它工作正常,没有大文件。 – fzuid