Вычислите хэш строки алгоритмами MD5, SHA-1 и SHA-256.
Текст
Что такое хэш и где он применяется
Хэш — это короткая строка-отпечаток фиксированной длины, которую алгоритм вычисляет из любых данных. Одинаковый ввод всегда даёт одинаковый хэш, а малейшее изменение полностью меняет результат. Хэши используют для проверки целостности файлов, хранения паролей и подписи данных.
Какой алгоритм выбрать
MD5 и SHA-1 считаются устаревшими и небезопасными для защиты данных — их стоит применять только для контрольных сумм. Для задач, связанных с безопасностью, выбирайте SHA-256 или SHA-512. Для паролей хэш-функции общего назначения вообще не подходят — нужны специальные алгоритмы вроде bcrypt или Argon2.
Практические сценарии использования
Проверить, что скачанный файл не повреждён (сверка с опубликованным хэшем). Сравнить две версии файла, не открывая их. Сгенерировать стабильный идентификатор записи на основе её содержимого. Защитить целостность сообщения подписью HMAC.
Частые вопросы
Можно ли восстановить исходный текст из хэша?
Нет. Хэширование — односторонняя операция: по хэшу нельзя получить исходные данные. Можно лишь перебирать варианты входа и сравнивать хэши, но для случайных строк это вычислительно невозможно.
Почему MD5 называют небезопасным?
Для MD5 и SHA-1 найдены способы подобрать разные данные с одинаковым хэшем (коллизии), поэтому их нельзя использовать там, где важна защита от подделки. Для контрольных сумм они ещё годятся.
Подходит ли SHA-256 для хранения паролей?
Нет, обычные хэш-функции работают слишком быстро, и пароли можно подобрать перебором. Для паролей нужны медленные функции вроде bcrypt, scrypt или Argon2 — у нас для этого есть отдельный инструмент.