Калькулятор хешей MD5, SHA-1, SHA-256, SHA-512 и CRC32
Вычислите хеш строки или файла алгоритмами MD5, SHA-1, SHA-256, SHA-384, SHA-512 и CRC-32 в шестнадцатеричном виде и Base64. Поддерживаются кодировки UTF-8 и Windows-1251, HMAC с ключом и проверка совпадения с ожидаемой контрольной суммой. Файлы и текст обрабатываются только в вашем браузере и никуда не отправляются.
Что такое хеш-функция
Криптографическая хеш-функция превращает данные любого размера в строку фиксированной длины — хеш, или дайджест. Хорошая хеш-функция обладает тремя свойствами:
- Детерминированность: одни и те же данные всегда дают один и тот же хеш.
- Лавинный эффект: изменение одного бита входа меняет примерно половину битов хеша.
- Стойкость: по хешу нельзя восстановить данные и практически невозможно подобрать два разных сообщения с одинаковым хешем (коллизию).
Какой алгоритм выбрать
| Алгоритм | Длина | Состояние |
|---|---|---|
| MD5 | 128 бит, 32 hex-символа | Взломан: коллизии находятся за секунды. Годится только для контроля случайных повреждений. |
| SHA-1 | 160 бит, 40 символов | Устарел: практическая коллизия получена в 2017 году. Встречается в Git и старых системах. |
| SHA-256 | 256 бит, 64 символа | Стойкий, стандарт де-факто: TLS, подписи, биткоин, контрольные суммы дистрибутивов. |
| SHA-384, SHA-512 | 384 и 512 бит | Стойкие; на 64-битных процессорах SHA-512 работает быстрее SHA-256. |
| CRC-32 | 32 бита, 8 символов | Не криптографическая: только обнаружение случайных ошибок, подделывается легко. |
Проверка скачанного файла
Разработчики программ и дистрибутивов публикуют контрольные суммы файлов. Выберите режим «Файл», укажите скачанный файл и вставьте опубликованную сумму в поле сверки. Если хеш совпал, файл скачан без повреждений и не подменён — при условии, что сама сумма получена из надёжного источника.
HMAC
HMAC — код аутентификации сообщения на основе хеш-функции и секретного ключа: HMAC(K, m) = H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)). Получатель, знающий ключ, проверяет, что сообщение не изменено и отправлено владельцем ключа. HMAC используется для подписи запросов к API, в JWT (HS256), в протоколах TLS и IPsec.
Хеши и пароли
Хранить пароли в виде MD5 или SHA-256 без «соли» нельзя: по таблицам готовых хешей распространённые пароли находятся мгновенно, а видеокарта перебирает миллиарды вариантов в секунду. Для паролей применяют специальные медленные функции — bcrypt, scrypt, Argon2, PBKDF2 — с уникальной солью для каждого пользователя.
Кодировка имеет значение
Хеш считается от байтов, а не от букв. Слово «Привет» в UTF-8 занимает 12 байт, а в Windows-1251 — 6, поэтому хеши получатся разными. Также учитываются пробелы и переводы строк: лишний перевод строки в конце текста полностью меняет хеш.
Комментарии и вопросы