Безопасность: SHA1 больше нет
Пока я тут в отпуске был, в SHA1 нашли серьёзную уязвимость. О хешировании пароля через SHA1 придётся забыть. 252 вариантов, как сказали в комментариях к исходной статье, для хорошей сети компьютеров (например, ботнета) не проблема — меньше дня перебора. Если у вас что-то совсем уж секретное, то за вас возьмётся IBM Roadrunner, ему, чтобы сделать перебор этих комбинаций, нужно будет 4 минуты.
Переходить рекомендуется на SHA2 (хотя я выбрал бы TIGER). Ну а там, где хеширование используется не для сокрытия, а для уменьшения количества данных (например, получения ключа кеша по хешу URL), по-прежнему можно использовать SHA-1.
В PHP для этого можно использовать модуль hash (в версиях ниже 5.1.2 — mhash) или реализацию SHA-256 на чистом PHP. В Python — hashlib.
Мда, буквально вчера читал стенограмму со словами Линуса «Никто не может взломать SHA-1».
http://lib.custis.ru/index.php/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks
Хотя в случае с GIT, как я понимаю, цель как раз уменьшение количества данных.
Комментарий для razetdinov.ya.ru:
Линус как-то совсем не в теме. Уязвимостей в SHA-1 было найдено уже несколько. Это третья, кажется.
Комментарий для Евгения Степанищева:
Еле нашёл дату: оказывается, доклад двухгодичной давности.
Гм, к гиту и его ключам в sha1 эта трабла отношения не имеет — что там взламывать-то?