Зависит от того, что вы считаете «незначительно низким», и от того, сколько элементов вы хэшируете.
Если вы используете 32-битный хэш-код, то у вас есть 50% -ная вероятность возникновения коллизиитолько после 70000 или около того предметов.С 64-битным хеш-кодом вероятность столкновения составляет около 50% после примерно 4 миллиардов элементов.
См. Мою запись в блоге https://blog.mischel.com/2017/11/02/birthdays-random-numbers-and-hash-keys/,, а также День рождения .
С 64-битным хеш-кодом у вас есть 1% шанс создать дубликат после 610 миллионов элементов.Является ли эта вероятность "незначительно низкой" достаточной для вас?
Достойная 64-битная хеш-функция равна https://en.wikipedia.org/wiki/Jenkins_hash_function. Обратите внимание, что она не криптографически безопасна, но, похоже, она будет работать для вашего приложения,и вычисление будет намного быстрее, чем MD5 или SHA1.
И если вы хотите превратить его в идентификатор, просто base64 закодируйте .Это будет 12 символов в длину.