Для производительности, мера.Все хеш-функции «быстрые» - для некоторого понятия скорости.Среди тех, кого вы перечислили, MD5 - самый быстрый, но это не значит, что другие не «достаточно быстрые».Самым медленным должен быть SHA-512 с управляемой реализацией на 32-битной виртуальной машине (с 64-битной виртуальной машиной SHA-512 значительно ускоряется, а SHA-256 становится самым медленным);он по-прежнему должен обрабатывать данные объемом около 30 Мбайт в секунду на обычном ПК, что также не является слишком медленным.
В случае сомнений используйте SHA-256.Рассмотрим другое, только если вы продемонстрируете в реальном эксперименте, что скорость хэширования является узким местом для вашего приложения и , и вы можете показать, что у вас действительно нет проблем безопасности с криптографически сломанной хэш-функцией.Это правильный порядок вещей, потому что оценка производительности на намного проще , чем оценка безопасности, поэтому гораздо безопаснее в первую очередь стремиться к хорошей безопасности.Здесь, опять же, помимо выбора MD5 в качестве более быстрой функции, вы можете также представить импорт управляемой реализации MD4 (там есть одна ): MD4 еще более сломан, чем MD5, но также еще быстрее.И / или вы можете попробовать немного собственного кода (в реализациях хеш-функций собственный код обычно в 2–4 раза быстрее, чем управляемый код).
Если вам нужен более короткий вывод, вы можете просто обрезать его.Это механически снижает безопасность, поэтому вы должны делать это только в том случае, если использование хеш-функции не связано с безопасностью.