Sha1, Sha0, md4 и md5 были признаны небезопасными за последние несколько лет. Проблема в том, что если злоумышленник может сгенерировать 2 разных сообщения, которые выдают одинаковый результирующий хэш, это называется коллизией. Это вызывает много проблем для PKI, управления паролями, проверки целостности файлов и многого другого. В настоящее время sha1 обеспечивает только 2 ^ 52 бит безопасности, которые доступны для атакующих. Где как SHA-256 (самый маленький член семейства sha2) обеспечивает 2 ^ 256 бит.
Все платформы должны иметь реализацию SHA-256, хотя не все из них являются нативными. В PHP вы должны использовать расширение mhash. Довольно странно, что некоторые платформы не предоставляют безопасных хеш-функций, я, честно говоря, верю, потому что они не заботятся о безопасности. В случае с PHP я точно знаю, что они не заботятся о безопасности .
В настоящее время в SHA-2 нет ничего плохого, и у него очень большой запас прочности. Вы можете использовать SHA-512, если вы действительно параноик. Sha-3 выйдет в 2012 году, вы должны исправить все, что сможете, с sha-2, как ваши ПАРОЛИ , а затем перейти на SHA-3, когда сможете, но SHA-512 будет ОЧЕНЬ хорош время.