我在嘗試計算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