我正在使用C#为System.Drawing.Point类实现自定义的GetHashCode。目前我的方法无法满足以下要求:
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);
为了通过这个测试,我相信使用new SHA256Managed().ComputeHash(currentHash)就可以了。但是还有其他更快的哈希算法吗?我知道SHA256是关于安全性的,而我不需要那么高的安全性。