У меня проблема с StringBuilder, которая не работает должным образом при использовании несколько раз. Вот пример, когда я делаю строку из байтового массива хэша.StringBuilder используется несколько раз не работает
StringBuilder stringBuilder = new StringBuilder();
//MD5
MD5 Md5 = MD5.Create();
foreach (byte b in Md5.ComputeHash(exeStream))
stringBuilder.AppendFormat("{0:X2}", b);
CompareHashValueMd5 = stringBuilder.ToString().ToLower();
stringBuilder.Clear();
// SHA1
SHA1Managed SHhash = new SHA1Managed();
foreach (byte b in SHhash.ComputeHash(exeStream))
stringBuilder.AppendFormat("{0:X2}", b);
CompareHashValueSha = stringBuilder.ToString().ToLower();
stringBuilder.Clear();
// SHA256
SHA256Managed SHhash256 = new SHA256Managed();
foreach (byte b in SHhash256.ComputeHash(exeStream))
stringBuilder.AppendFormat("{0:X2}", b);
CompareHashValueSha256 = stringBuilder.ToString().ToLower();
stringBuilder.Clear();
Результаты:
MD5: ПРАВИЛЬНО
SHA1: НЕПРАВИЛЬНО
SHA256: НЕПРАВИЛЬНО
Когда я удалить MD5 и запустить программу снова SHA1 отлично но SHA256 - нет. Поэтому я предполагаю, что проблема заключается в повторном использовании stringBuilder. Любая идея, что с этим делать? Спасибо
Хек, решение даже прямо там, в [пример на MSDN] (https://msdn.microsoft.com/en-us/library/xa627k19 (v = vs.110) .aspx) –