Это действительно зависит от того, для чего это нужно.
Если вам нужна реальная безопасность, где возможность легко обнаружить столкновение может поставить под угрозу вашу систему, я бы использовал что-то вроде SHA-256 или SHA-512, так как они настоятельно рекомендуются различными агентствами.
Если вам нужно что-то быстрое, и его можно использовать для однозначной идентификации чего-либо, но нет реальных требований безопасности (т. Е. Злоумышленник не сможет сделать что-нибудь неприятное, если обнаружит столкновение) тогда я бы использовал что-то вроде MD5.
Показано, что MD4, MD5 и SHA-1 легче ломаются в смысле обнаружения столкновения методом атаки на день рождения, чем ожидалось. RIPEMD-160 хорошо известен, но на 160 битах для атаки на день рождения требуется всего 2 ^ 80 операций, поэтому он не будет длиться вечно. Whirlpool обладает отличными характеристиками и выглядит самым сильным из всех, хотя у него нет такой же поддержки, как у SHA-256 или SHA-512 - в том смысле, что если у вас были проблемы с SHA-256 или SHA-512, вы с большей вероятностью узнаю об этом по соответствующим каналам.