흥미로운 문제가 생겼어. "HMACSHA256"해시에 대한 ComputeHash()가 결정 론적으로 작동하지 않는 것 같습니다. HashAlgorithm.Create ("HMACSHA256")를 사용하여 HashAlgorithm의 두 인스턴스를 만드는 경우 다음과 같이 실행합니다. ComputeHash, 나는 두 가지 다른 결과를 얻습니다. 아래는이 동작을 나타내는 정적 정적 클래스의 예입니다.ComputeHash가 결정 론적으로 작동하지 않는 이유는 무엇입니까?
internal static string HashPassword(byte[] bAll)
{
using (HashAlgorithm s = HashAlgorithm.Create("HMACSHA256"))
{
return Convert.ToBase64String(s.ComputeHash(bAll));
}
}
나는 또한 호출 비 정적을 만들기 위해 노력했습니다 (실제로는 비 정적 시작하고, 나는 더블, 트리플 가지고 quadrudruple은 .. 내가 '각 통화의 절대적 같은 내 입력 배열 .. 체크 심지어 immidiate 창 등에서 물건을 했어 :
Convert.ToBase64String(HashAlgorithm.Create("HMACSHA256").ComputeHash(bAll)
그리고 두 개의 서로 다른 해시를 반환하는 방법에 중단 점을 통해 두 번 immidiates 창에서 그 실행 ..
나는 해시 결정적으로 생각한다 알고있다. 그래서 무엇이 제공됩니까? 디버거에서? 아니면 다른 아이디어? 정말이 지금 단어를 두 이상해 - P ..감사 조쉬
이 문제를 나타내는 짧은 샘플 데이터가 있습니까? 통화 중 또는 통화 중에 'bAll'이 바뀌고 있습니까? –
HMAC는 키순 해시입니다.귀하의 예제 코드에서 키가 보이지 않습니다. 명시 적으로 지정하지 않으면 키가 임의로 설정됩니다. – dtb
전화 사이에 아무것도 바뀌지 않습니다. 내가 말했듯이 immidiates 창에서이 작업을 수행했습니다. 내 Immidiates 창에서 4 건의 호출이 있습니다. 예, HashAlgorithm을 처리해야하기 때문에 완벽하지는 않지만 결과는 Immidiates 창 또는 방법을 통해 동일. (여기에 붙여 넣을 복사 공간이 없기 때문에 다음 주석에 포함 할 것입니다.) –