我遇到了一个有趣的问题..似乎“HMACSHA256”哈希的 ComputeHash() 的行为不是确定性的..如果我使用 HashAlgorithm.Create("HMACSHA256") 创建两个 HashAlgorithm 实例.. 并运行 ComputeHash,我得到了两个不同的结果。下面是一个展示这种行为的示例静态类。
internal static string HashPassword(byte[] bAll)
{
using (HashAlgorithm s = HashAlgorithm.Create("HMACSHA256"))
{
return Convert.ToBase64String(s.ComputeHash(bAll));
}
}
我还尝试使调用非静态(实际上它开始时是非静态的,并且我有双重、三重和四重检查我的输入数组..每次通话都完全相同..我什至在 immidiate像这样的窗口:
Convert.ToBase64String(HashAlgorithm.Create("HMACSHA256").ComputeHash(bAll)
并通过方法中的断点在 immidiates 窗口中运行两次返回两个不同的哈希值。
我知道哈希应该是确定性的.. 那么给出了什么?在调试器中运行有什么问题吗?还是有其他想法?真的,现在这只是两个奇怪的词:-P ..
谢谢乔什