興味深い問題が発生しました。「HMACSHA256」ハッシュのComputeHash()が決定論的に動作していないようです。HashAlgorithm.Create( "HMACSHA256")を使用してHashAlgorithmのインスタンスを2つ作成すると、ComputeHashを実行します。 2つの異なる結果が得られます。以下は、この動作を示す静的クラスの例です。
internal static string HashPassword(byte[] bAll)
{
using (HashAlgorithm s = HashAlgorithm.Create("HMACSHA256"))
{
return Convert.ToBase64String(s.ComputeHash(bAll));
}
}
また、呼び出しを非静的にしようとしました(実際には非静的に開始され、入力配列を2倍、3倍、4倍にチェックしました。各呼び出しでまったく同じです。のようなウィンドウ:
Convert.ToBase64String(HashAlgorithm.Create("HMACSHA256").ComputeHash(bAll)
そして、メソッドのブレークポイントを介してイミディエイトウィンドウで2回実行すると、2つの異なるハッシュが返されます。
私はハッシュが決定論的であると想定されていることを知っています。デバッガーでの実行で何かが起こっていますか?または他のアイデアはありますか?本当にこれは今の言葉にとって奇妙な2つです:-P..
ありがとうジョシュ