-1
複数回使用すると正しく動作しない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:
INCORRECT私はMD5を削除し、プログラムを実行すると、再びSHA1で結構ですSHA256はそうではありません。だから私は問題は、stringBuilderの再利用であると思う。どのようなアイデアをこれとどうしたらいいですか?ありがとう
[MSDNの例](https://msdn.microsoft.com/en-us/library/xa627k19(v = vs.110).aspx)に解決策があります。 –