С этой точки зрения, в зависимости от объема данных, с которыми вы работаете, SHA1 должен работать нормально - если вы будете работать с большими объемами данных, алгоритм SHA-2, такой как SHA-256, может быть более подходящимбоязнь коллизий в SHA1 возрастает из-за недостатка в его алгоритме, но он не очень серьезен при работе с небольшими объемами данных.
MD5 оказался слишком уязвимым для коллизий, так какбыли атаки на SSL-сертификаты, которые использовали MD5 для создания поддельного SSL-сертификата, поэтому я бы держался подальше от этого.Кроме того, в зависимости от вашего приложения, MD5 не совместим с FIPS 140, если это имеет какое-либо значение для вас.
SHA1 идеально подходит по сравнению с MD5, потому что он безопаснее, так как MD5 рискованно использовать, а SHA1 имеет лучшую производительностьНаиболее распространенные обстоятельства, чем ША-2.Алгоритмы SHA-2 отнюдь не медленны, но имеют преимущество.Тем не менее, SHA1 немного рискованнее, потому что вы, вероятно, замкнулись в его использовании - если столкновения начнут обнаруживаться, вам может быть сложно изменить его, поэтому лучше заранее инвестировать в алгоритм SHA-2.Наказание за использование SHA-256 над SHA-1 очень мало, в зависимости от того, как вы будете использовать алгоритм SHA.Алгоритмы SHA-2 производят намного больший выходной сигнал, чем SHA1, но благодаря уменьшенным шансам столкновения.
Так какой из них прав?Это зависит от того, что вы ищете и каков ваш вариант использования.Надеюсь, теперь вы можете принять решение.