«Уникальный хэш», как правило, является противоречием в терминах, даже в общих терминах (и это более очевидно невозможно, если вы пытаетесь использовать Int32
в качестве значения хэш-функции). Из записи Википедии:
Хэш-функция является любой хорошо определен процедура или математическая функция , которая преобразует большой, возможно переменного размера объем данных в небольшой опорной точки, как правило, одно целое число , что может служить в качестве индекса для массива . Значения, возвращаемые функцией хеша , называются хеш-значениями, хэш-кодом , хэш-суммами или просто хэшами.
Обратите внимание на бит «маленькой точки отсчета» - другими словами, будут более вероятные объекты, чем есть возможные значения хэширования, поэтому вы не можете иметь уникальность.
Теперь, похоже, вы хотите, чтобы хеш был строкой ... что означает, что он не будет иметь фиксированный размер (но будет должен быть менее 2 ГБ или что бы ни ограничил). Самый простой способ создания этого «уникального хэша» - это сериализовать объект и преобразовать результат в строку, например. используя Base64, если это бинарный формат сериализации, или просто текст, если он основан на тексте, такой как JSON. Однако это не то, что кто-то еще действительно распознал бы как «хэширование».
Это будет сложно. Возможно, но сложно и дорого в ресурсах. Можете ли вы четко объяснить, почему вы хотите такой механизм? Вероятно, есть лучший способ сделать то, что вы хотите. –