Перейти к основному содержимому
FreeOnlineTools Go
Русский
Объяснение

Алгоритмы хеширования объяснены: MD5, SHA-1, SHA-256, SHA-512

Автор: FreeOnlineTools Team · Обновлено 2026-08-28

Быстрый ответ

MD5 и SHA-1 взломаны и не должны использоваться для целей, чувствительных к безопасности. SHA-256 — текущий default для проверки целостности и подписей. SHA-512 быстрее на 64-bit CPU. Используйте наш Hash Generator для вычисления в браузере.

Введение

Криптографическая hash-функция принимает вход произвольного размера и производит digest фиксированного размера, который детерминирован, быстр в вычислении, необратим, collision-resistant и avalanche-чувствителен (изменение одного бита меняет примерно половину выходных битов). MD5 (128-bit), SHA-1 (160-bit), SHA-256 (256-bit) и SHA-512 (512-bit) — четыре наиболее распространённые hash-функции, но их свойства безопасности различаются кардинально.

Шаг за шагом

  1. Понять свойства хеш-функции

    Хороший криптографический хеш является детерминированным (один и тот же вход всегда дает один и тот же результат), выход фиксированного размера, быстро вычисляется, невозможно обратить вспять (сопротивление предварительному изображению), невозможно найти два входа с одинаковым выходом (устойчивость к коллизиям) и лавинами (небольшое изменение входных данных переворачивает ~ 50% выходных битов).

  2. Знайте размеры дайджеста

    MD5 выдаёт 128 бит (32 шестнадцатеричных символа). SHA-1 выдает 160 бит (40 шестнадцатеричных символов). SHA-256 выдаёт 256 бит (64 шестнадцатеричных символа). SHA-512 выдает 512 бит (128 шестнадцатеричных символов). Более длинные дайджесты уменьшают вероятность коллизий, но увеличивают размер хранилища.

  3. Узнайте, почему MD5 и SHA-1 не работают.

    Исследователи обнаружили практические коллизионные атаки против MD5 (2004 г.) и SHA-1 (2017 г., атака SHAttered). Коллизии позволяют злоумышленнику создать два разных ввода с одним и тем же хешем, взламывая цифровые подписи и центры сертификации. Ни один из них не должен использоваться в целях безопасности.

  4. Выберите правильный алгоритм

    Для проверки целостности файлов, где скорость важнее безопасности, по-прежнему распространены MD5 или SHA-1. Для любого использования, чувствительного к безопасности (пароли, подписи, сертификаты, блокчейн), используйте SHA-256 или SHA-512. Для хранения паролей используйте медленный KDF, например bcrypt, scrypt или Argon2 — никогда не используйте необработанный SHA-256.

  5. Вычисление и проверка хешей

    Используйте генератор хэшей для хеширования текста с помощью любого алгоритма или хэш файла для вычисления хеша локального файла. Сравните полученный дайджест с заведомо верным значением, чтобы проверить целостность — разница в один бит означает, что файл был поврежден или подделан.

Примеры

MD5 слова «привет» (128 бит, 32 шестнадцатеричных символа)

Вход: hello

Выход: 5d41402abc4b2a76b9719d911017c592

SHA-256 слова «привет» (256 бит, 64 шестнадцатеричных символа)

Вход: hello

Выход: 2cf24dba5fb0d30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Эффект лавины — одна смена персонажа

Вход: привет против привета

Выход: SHA-256('hello') запускает 2cf24dba... а SHA-256('Hello') запускает 185f8db3... — совершенно другое, несмотря на однобитовое изменение входных данных

Распространенные проблемы

  • Использование MD5 или SHA-1 для хеширования паролей: оба являются быстрыми и ненадежными, что делает атаки методом перебора и радужной таблицы тривиальными. Вместо этого используйте bcrypt, scrypt или Argon2.
  • Путаница хеширования с шифрованием: хеширование является односторонним и необратимым; шифрование двустороннее. Вы не можете «расшифровать» хеш — вы можете только сравнивать хеши.
  • Игнорирование атак с расширением длины: MD5, SHA-1, SHA-256 и SHA-512 уязвимы для атак с расширением длины при использовании в качестве MAC. Используйте HMAC-SHA256 для аутентификации сообщений.
  • Сравнение хешей с помощью == вместо сравнения с постоянным временем: утечки времени позволяют злоумышленникам восстанавливать хэши побайтно. Используйте сравнение в постоянное время в коде безопасности.

Советы

  • Для новых систем по умолчанию используется SHA-256 — он быстрый, широко поддерживается и по состоянию на 2026 год не имеет практической коллизионной атаки.
  • Для хранения паролей используйте bcrypt с рабочим коэффициентом 12+ (или Argon2id с памятью 64 МБ) — никогда не используйте необработанный SHA-256, который слишком быстр по сравнению с графическими процессорами.
  • При проверке загрузки файла сравните имя алгоритма и дайджест — хэш SHA-1 не имеет смысла, если издатель намеревался только SHA-256.
  • Используйте наш инструмент File Hash для локального вычисления SHA-256 больших файлов без загрузки — он передает файл через Web Crypto API.

Сопутствующие инструменты

Связанные руководства

Ссылки