Я реализую собственный GetHashCode для класса System.Drawing.Point на С#. Мой метод в настоящее время не соответствует следующему требованию:
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 — это безопасность, а мне это не нужно.