Нельзя предотвратить ха sh коллизий, они неизменно случаются. При фиксированном количестве возможных выходных данных и неограниченном количестве возможных входных данных (определение фактически для функции ha sh ) коллизии неизбежны.
Создание, отладка и исправление алгоритма ha sh также не являются обычной работой программистов. Это работа для математиков в первую очередь. Нет веской причины для реализации собственного алгоритма хеширования. Существующие будут лучше. Они разработаны и протестированы группами специалистов из разных областей. Ваша единственная цель должна заключаться в их реализации, но даже здесь вы очень подвержены ошибкам. И, по возможности, должен оставить это авторам фреймворков и библиотек, где это возможно.