Как вычислить хеш SHA-256 онлайн
Калькулятор вычисляет хеш текста сразу четырьмя алгоритмами семейства SHA: SHA-1, SHA-256, SHA-384 и SHA-512. Результат выводится в шестнадцатеричном виде строчными буквами — в том же формате, что у sha256sum и большинства библиотек.
Расчёт выполняется в браузере через стандартный Web Crypto API (crypto.subtle.digest), текст не отправляется на сервер PingDesk. Перед хешированием строка кодируется в UTF-8, поэтому хеш кириллического текста совпадёт с результатом в Python, Node.js или PHP при той же кодировке.
Ниже — чем различаются алгоритмы, как проверить контрольную сумму скачанного файла и почему обычный хеш не подходит для хранения паролей.
Как пользоваться калькулятором
- 1Введите или вставьте текст в поле. Учитывается каждый символ: пробел или перевод строки в конце дают совершенно другой хеш.
- 2Нажмите «Вычислить хеши» — инструмент посчитает SHA-1, SHA-256, SHA-384 и SHA-512 одновременно. Для пустого поля расчёт не запускается.
- 3Скопируйте нужное значение значком рядом с названием алгоритма.
- 4Сверяя хеш с эталоном, сравнивайте строку целиком, а не первые и последние символы. Регистр в hex-записи значения не имеет: AB12 и ab12 — одно и то же.
- 5Если хеш не совпадает с результатом в терминале, проверьте переводы строк: echo добавляет \n в конце, файлы из Windows используют CRLF, а поле ввода в браузере передаёт переносы как LF.
Сравнение алгоритмов MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Криптографическая хеш-функция превращает данные любого размера в строку фиксированной длины. От неё требуют трёх свойств: по хешу нельзя восстановить исходные данные, нельзя подобрать другие данные с тем же хешем и нельзя найти любые две строки с одинаковым хешем — коллизию. Как только для алгоритма находят практичный способ строить коллизии, его перестают использовать для подписей и сертификатов.
MD5 в этом калькуляторе нет: Web Crypto API браузера его не поддерживает. Алгоритм приведён в таблице для сравнения, потому что до сих пор встречается в старых системах. Для новых задач по умолчанию выбирайте SHA-256 — это самый распространённый и хорошо поддерживаемый вариант.
| Алгоритм | Длина хеша | Hex-символов | Статус | Где допустим |
|---|---|---|---|---|
| MD5 | 128 бит | 32 | Взломан: коллизии строятся на обычном компьютере за секунды | Только некриптографические задачи: дедупликация, ключи кэша |
| SHA-1 | 160 бит | 40 | Взломан: практическая коллизия получена в 2017 году (SHAttered) | Совместимость со старыми системами, проверка случайных повреждений |
| SHA-256 | 256 бит | 64 | Надёжен | Контрольные суммы, подписи, сертификаты, HMAC |
| SHA-384 | 384 бита | 96 | Надёжен | TLS, подписи ECDSA P-384, Subresource Integrity; не подвержен атаке удлинения сообщения |
| SHA-512 | 512 бит | 128 | Надёжен | Подписи (используется внутри Ed25519), HMAC, большие объёмы данных |
Как проверить контрольную сумму скачанного файла
Разработчики дистрибутивов и программ публикуют рядом с файлом его хеш — обычно SHA-256 в файле вроде SHA256SUMS или строкой на странице загрузки. Совпадение хеша подтверждает, что файл скачан полностью и не повреждён.
От намеренной подмены проверка защищает, только если контрольная сумма получена из надёжного источника — с официального сайта по HTTPS или с проверенной подписью GPG. Злоумышленник, подменивший файл на зеркале, может подменить и хеш рядом с ним.
Этот калькулятор хеширует текст, а не файлы. Он удобен, чтобы получить хеш строки — токена, ключа, фрагмента конфигурации — или сравнить два значения. Для файлов используйте встроенные команды операционной системы:
- Linux: sha256sum file.iso, а для проверки по списку — sha256sum -c SHA256SUMS.
- macOS: shasum -a 256 file.iso.
- Windows PowerShell: Get-FileHash file.iso -Algorithm SHA256.
- Windows, командная строка: certutil -hashfile file.iso SHA256.
Почему SHA-256 не подходит для хранения паролей
SHA-256 спроектирован быстрым: современная видеокарта вычисляет миллиарды таких хешей в секунду. Для проверки целостности это достоинство, для паролей — уязвимость. Если база с SHA-256-хешами паролей утечёт, короткие и словарные пароли подберут перебором, а одинаковые пароли разных пользователей дадут одинаковые хеши.
Соль — случайная строка, уникальная для каждого пользователя, — решает проблему одинаковых хешей и заранее посчитанных таблиц, но не скорости перебора. Поэтому для паролей используют специальные медленные функции с настраиваемой стоимостью. Готовые реализации есть во всех популярных языках — например, password_hash() в PHP или пакеты argon2 и bcrypt для Python и Node.js, — так что собственную схему «SHA-256 + соль» писать не нужно.
- Argon2id — победитель конкурса Password Hashing Competition и первый выбор по рекомендации OWASP. Требует и времени, и памяти, что мешает перебору на видеокартах.
- scrypt — тоже требует много памяти; хорошая альтернатива, если Argon2 недоступен.
- bcrypt — проверенный временем вариант с параметром стоимости. Учитывайте, что он использует только первые 72 байта пароля.
- PBKDF2 с HMAC-SHA-256 и большим числом итераций — когда нужна совместимость с FIPS 140.
HMAC: хеш с секретным ключом
Обычный хеш подтверждает, что данные не изменились случайно, но не защищает от намеренной подмены: злоумышленник изменит сообщение и пересчитает хеш. Чтобы проверить и целостность, и подлинность, используют HMAC — конструкцию из хеш-функции и секретного ключа (RFC 2104). Пересчитать HMAC без ключа невозможно.
Типичный пример — подписи вебхуков. GitHub передаёт заголовок X-Hub-Signature-256 с HMAC-SHA256 тела запроса, похожую схему используют Stripe и многие другие сервисы. Получатель вычисляет HMAC тем же ключом и сравнивает результат с заголовком функцией сравнения за постоянное время.
Не заменяйте HMAC конструкцией SHA-256(ключ + сообщение): SHA-256 и SHA-512 подвержены атаке удлинения сообщения, и такую «подпись» можно продлить без знания ключа. Этот калькулятор считает только обычные хеши — для HMAC используйте модуль hmac в Python, crypto.createHmac в Node.js или crypto.subtle.sign в браузере.
Как правильно сравнивать хеши
Когда хеш «не совпадает», причина почти всегда не в алгоритме, а в том, что на вход попали немного разные байты.
- Хеш зависит от каждого байта: строка PingDesk даёт SHA-256, начинающийся с e416da24, а та же строка с переводом строки в конце — с a93b25dd.
- Кодировка важна: один и тот же русский текст в UTF-8 и Windows-1251 даёт разные хеши. Калькулятор всегда использует UTF-8.
- Hex и Base64 — разные записи одного хеша. Например, атрибут integrity в теге script (Subresource Integrity) ожидает хеш в Base64, а не в hex.
- Лишние пробелы и невидимые символы при копировании — частая причина расхождений. Регистр hex-символов роли не играет.
- Хеширование не анонимизирует данные: телефоны, email и ПИН-коды имеют мало возможных значений, и их хеши восстанавливаются перебором.
Частые вопросы
Можно ли расшифровать SHA-256?
+
Нет: хеш — это не шифрование, и ключа для обратного преобразования не существует. Но короткие и предсказуемые строки — словарные пароли, телефоны, даты — находят перебором или по готовым таблицам: вычисляют хеши кандидатов и сравнивают. Поэтому хеш не защищает данные с небольшим числом возможных значений.
Почему в калькуляторе нет MD5?
+
Инструмент использует Web Crypto API браузера, который поддерживает только SHA-1, SHA-256, SHA-384 и SHA-512. MD5 в него не входит — для этого алгоритма коллизии давно строятся за секунды. Если MD5 нужен для совместимости со старой системой, используйте md5sum в Linux или Get-FileHash -Algorithm MD5 в PowerShell.
Можно ли хранить пароли в виде SHA-256?
+
Нет. SHA-256 слишком быстрый: при утечке базы короткие и словарные пароли подбираются перебором на видеокартах. Для паролей применяют медленные функции Argon2id, scrypt или bcrypt с уникальной солью для каждого пользователя.
Чем SHA-256 отличается от SHA-512?
+
Длиной результата — 256 и 512 бит — и внутренним устройством: SHA-512 работает с 64-битными словами и на 64-битных процессорах без аппаратного ускорения SHA часто оказывается быстрее. Оба алгоритма надёжны. SHA-384 — это SHA-512 с другими начальными значениями и укороченным результатом.
Почему хеш отличается от результата в командной строке?
+
Чаще всего из-за перевода строки: команда echo "text" | sha256sum хеширует текст вместе с \n. Используйте echo -n или printf '%s' 'text'. Также проверьте кодировку и концы строк: в файлах из Windows это CRLF, а поле ввода в браузере передаёт LF.
Можно ли посчитать хеш файла на этой странице?
+
Нет, калькулятор работает только с текстом. Для файлов используйте sha256sum в Linux, shasum -a 256 в macOS или Get-FileHash в PowerShell и сравните результат с опубликованной контрольной суммой.
Одинаковый текст всегда даёт одинаковый хеш?
+
Да, хеш-функция детерминирована: один и тот же набор байт даёт один и тот же результат на любом устройстве и в любом языке программирования. Именно поэтому по хешу проверяют целостность. Но изменение даже одного символа или пробела меняет хеш полностью.
Безопасен ли SHA-1?
+
Для цифровых подписей и сертификатов — нет: практическая коллизия получена в 2017 году, а в 2020 году показана атака с выбранным префиксом. Для обнаружения случайных повреждений SHA-1 по-прежнему работает, но в новых системах выбирайте SHA-256.