C#でSystem.Drawing.PointクラスのカスタムGetHashCodeを実装しています。 。私は新しいSHA256Managed()ComputeHash(currentHash)を使用して行いますことを確信しているこのテストに合格するには最速のハッシュコードジェネレータ.NET
var hashA = MyGetHashCode(new Point(1, 0));
var hashB = MyGetHashCode(new Point(0, 1));
var hashC = MyGetHashCode(new Point(0, 0));
var hashD = MyGetHashCode(new Point(1, 1));
Assert.AreNotEqual(hashA^hashB, hashC^hashD);
:私の方法は、現在、次の要件を失敗しました。しかし、他に高速なハッシュアルゴリズムがありますか?私はSHA256がセキュリティに関するすべてであることを知っています。私はそれを必要としません。
あなたのハッシュ関数は、その試験に合格しなければならないという考えを思い付いたきっかけは? – mquander
@私のカスタムPoint.GetHashCodeメソッドに依存している単純なGetHashCode実装に依存しています –
@mquanderそれは、EqualsとGetHashCodeでコードを繰り返さないことと同等であることです。 –