Генератор хэшей и контрольных сумм
Получайте MD5, SHA-1, SHA-256, SHA-384 и SHA-512 одновременно для текста и файлов. Проверяйте скачанный файл по его официальной контрольной сумме, чтобы убедиться, что он не был изменён. Всё локально, ничего не покидает ваш браузер.
- Алгоритмы
- MD5 · SHA-1/256/384/512
- Движок
- Web Crypto API
- Конфиденциальность
- 100% локально
- Ввод
- Текст / файл
Перетащите файл сюда или нажмите для выбора
Байты файла считываются локально для вычисления контрольных сумм — ничего не загружается. Работает с установщиками, образами дисков и архивами.
ОСОБЕННОСТИ
Все пять хэшей на одной странице
От быстрых отпечатков до надёжных подписей — каждый хэш, необходимый разработчикам, специалистам по операциям и проверке скачиваний.
Пять алгоритмов
MD5, SHA-1, SHA-256, SHA-384 и SHA-512 отображаются вместе с длиной выходных битов — больше не нужно переключаться между инструментами.
Вычисление в реальном времени
Хэши текста в процессе ввода, не нужно нажимать кнопку. Результаты в моноширинном шрифте — кликните на строку для копирования.
Проверка целостности файлов
Перетащите установщик, образ диска или архив и сравните его с официальной контрольной суммой, чтобы убедиться, что скачивание не было изменено.
Локально, без загрузки
Семейство SHA использует встроенный в браузер Web Crypto API. Текст и файлы никогда не покидают ваше устройство — с конфиденциальным контентом можно не беспокоиться.
Соответствие UTF-8
Текст хешируется как байты UTF-8, поэтому результаты полностью совпадают с md5sum, функцией md5() в PHP и hashlib в Python.
Копирование в один клик
Копируйте каждый хеш отдельно или все сразу в стандартном формате контрольной суммы, готовом вставить в терминал.
Что нужно знать о хешах
Идея проста, но использование неподходящего алгоритма не по назначению — это реальная ошибка в области безопасности.
Что такое MD5 и SHA-1 на самом деле?
MD5 (алгоритм дайджеста сообщений 5) был разработан Рональдом Ривестом из MIT и опубликован в 1992 году как RFC 1321, создавая дайджест фиксированной длины 128 бит (32 шестнадцатеричных символа) как преемник MD4. SHA-1 был разработан Агентством национальной безопасности США и опубликован в 1995 году как федеральный стандарт FIPS 180-1, создавая 160 бит. Оба стали наиболее широко используемыми хеш-алгоритмами в следующие два десятилетия — их использовали для контрольных сумм файлов, хранения паролей, цифровых подписей и идентификаторов коммитов Git. Обратите внимание, что они до сих пор генерируют корректные дайджесты; «небезопасные» означает, что их устойчивость к коллизиям нарушена, а не то, что их вывод неверен.
Являются ли хеширование, шифрование и кодирование одним и тем же?
Нет — они решают разные задачи. Кодирование (например, Base64 или URL-кодирование) — это обратимое преобразование формата, которое может отменить каждый, не обеспечивая никакой безопасности. Шифрование обратимо с помощью ключа: открытый текст превращается в шифротекст, и правильный ключ расшифровывает его. Хеширование — односторонний процесс, не имеет ключа, и исходные данные нельзя восстановить из дайджеста — оно используется для отпечатков, проверки целостности и подписей. Распространенные заблуждения два: считать Base64 «шифрованием» и говорить, что пароль был «зашифрован с помощью MD5» — это хеширование, к тому же небезопасный способ хранения паролей.
Почему хеш нельзя обратить до исходных данных?
Хеш — это односторонняя функция: входные данные любой длины сжимаются в дайджест фиксированной длины, утаивая большую часть информации. Так же, как нельзя восстановить предложение по количеству его слов, исходные данные нельзя вывести из дайджеста. Безопасные алгоритмы специально разработаны так, чтобы такое обращение было вычислительно невозможным.
Можно ли еще использовать MD5 и SHA-1?
Для проверки того, не повредился ли файл случайно во время передачи — да, любое изменение одного байта практически всегда изменяет MD5. Но никогда не используйте их для безопасности: для обоих существуют практические атаки на коллизии (исследователи могут создать два разных файла с одинаковым MD5 под своим контролем). Для паролей, подписей и сертификатов используйте SHA-256 или выше.
Почему мой хеш отличается от другого инструмента для того же текста?
Три основные причины: ① разная кодировка символов (этот инструмент всегда использует UTF-8; старые инструменты могут использовать GBK или Latin-1); ② конечный перевод строки — командная строка echo добавляет его по умолчанию (используйте echo -n); ③ случайный пробел или невидимый символ при копировании. Хеши чувствительны к каждому байту, поэтому даже одного байта не хватает, чтобы полностью изменить результат.
Почему пароли нельзя хранить в виде простого MD5/SHA-256?
Обычные хеши работают быстро. При утечке таблицы хешей атакующие могут подобрать миллиарды комбинаций в секунду, а радужные таблицы мгновенно выполняют обратный поиск обычных паролей. Пароли требуют специально медленных алгоритмов, ресурсоемких по памяти (bcrypt, scrypt, Argon2) с уникальной солью для каждого пароля, что делает подбор грубой силой невозможно дорогостоящим.
Как проверить целостность скачанного файла?
Найдите контрольную сумму, опубликованную на официальном сайте (обычно SHA-256), перетащите загруженный файл на вкладку «Контрольная сумма файла» здесь и вставьте официальное значение в поле над результатами. Инструмент определит алгоритм по длине значения и подсветит совпадающую строку зеленым цветом, если байты файла полностью соответствуют опубликованным издателем; красный цвет означает повреждение или замену файла атакой посредника — не запускайте этот файл.
Какой из пяти алгоритмов использовать
Выбирайте в зависимости от сценария. Более новые алгоритмы создают более длинные дайджесты, лучше сопротивляются атакам и требуют немного больше ресурсов для вычисления.
| Алгоритм | Введен | Длина выхода | Безопасность | Типичное использование |
|---|---|---|---|---|
| MD5 | 1992 | 128 бит (32 символа) | Взломан; коллизии возможны на практике | Небезопасные идентификаторы, дедупликация, совместимость с устаревшими системами |
| SHA-1 | 1995 | 160 бит (40 символов) | Коллизии возможны на практике с 2017 года | Идентификаторы истории Git и других устаревших систем; не подходит для новых задач, связанных с безопасностью |
| SHA-256 | 2001 | 256 бит (64 символа) | Безопасен на сегодня | Контрольные суммы файлов, подписи, сертификаты TLS, блокчейны — универсальный стандарт по умолчанию |
| SHA-384 | 2001 | 384 бит (96 символов) | Безопасен | Усеченный SHA-512 для стандартов, требующих 384 бит |
| SHA-512 | 2001 | 512 бит (128 символов) | Безопасен | Высоконадежные подписи; часто работает быстрее SHA-256 на 64-битных CPU |
Под «безопасным» подразумевается отсутствие практических публичных атак на коллизии на сегодня. Для хранения паролей используйте bcrypt/Argon2 в независимости от выбора хеша.
Контрольные суммы: как фактически проверить загруженный файл
Зачем нужна строка MD5 или SHA-256 на странице загрузки, как её сравнить и с чем — вся информация в одном разделе.
Зачем вообще проверять
Файл на вашем диске не обязательно совпадает с файлом на сервере. Десяти секунд на сравнение контрольной суммы достаточно для защиты от трех типов проблем:
Большие файлы при возобновляемых загрузках и нестабильных сетях очень часто получают случайные байты; устранение неполадок с поврежденным установщиком занимает гораздо больше десяти секунд.
Многие загрузки фактически приходят с зеркал или CDN, где задержка синхронизации или ошибки кеша могут подсунуть вам устаревшую версию или половину файла.
Когда источник загрузки скомпрометирован или публичная сеть захвачена, в файлы могут быть встроены бэкдоры. В 2016 году сайт Linux Mint был взломан, а ссылки для скачивания заменены на ISO с бэкдором — первой реакцией проекта было настоятельное рекомендование всем проверить контрольную сумму.
Что такое контрольная сумма
Издатель вычисляет хеш файла на своем сервере и публикует результат на странице загрузки. После скачивания вы повторяете вычисление хеша локально. Если две строки совпадают посимвольно, то все байты файла соответствуют версии, выпущенной издателем — файл не поврежден и не подменен. Проверка чувствительна к каждому байту: изменение одного байта полностью меняет значение. В широком смысле к контрольным суммам также относят более простые схемы, такие как CRC32, которые только обнаруживают случайное повреждение, тогда как криптографические хеши, такие как MD5/SHA, дополнительно противостоят преднамеренной подделке.
Проверка файла в три шага
-
1
Получите официальную контрольную сумму
На странице загрузки найдите опубликованное значение MD5 или SHA-256 (часто помечено как «контрольная сумма» или идет в качестве вспомогательного файла .sha256) и скопируйте всю строку.
-
2
Перетащите файл и вставьте сумму
Перейдите на вкладку «Контрольная сумма файла» выше, перетащите в нее скачанный файл и вставьте контрольную сумму в поле над результатами.
-
3
Оцените результат по цвету
Инструмент определяет алгоритм по длине значения: зеленый цвет означает, что файл точно соответствует официальной версии и безопасен для использования; красный — файл может быть поврежден или изменен, не запускайте его.
Как читать контрольные суммы на официальных сайтах
Страницы загрузки указывают контрольные суммы в разных форматах, но все они состоят из двух элементов: хеш-значения и имени файла. Ниже приведены три самых распространенных формата — при вставке достаточно взять только часть с хешем (этот инструмент автоматически игнорирует пробелы и переносы строк):
# 1. Одна строка: только значение
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a
# 2. Формат sha256sum: значение + два пробела + имя файла (манифест SHA256SUMS состоит из множества таких строк)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a ubuntu-24.04.iso
# 3. Формат BSD: Алгоритм (имя файла) = значение
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a
MD5 или SHA-256
Проверяйте то, что предоставляет официальный сайт, но если у вас есть выбор: MD5 полностью достаточен для противодействия случайным повреждениям при передаче (любое случайное изменение почти всегда меняет значение MD5). Для защиты от преднамеренного изменения — в случае антивирусов, сертификатов, подписанных пакетов — вам потребуется SHA-256 или более сильный алгоритм, поскольку практические атаки коллизий позволяют злоумышленникам создать два разных файла с одинаковым значением MD5. Подробнее об этом рассказано в разделе «История безопасности» ниже.
Проверка через командную строку
В Linux и macOS инструменты для вычисления контрольных сумм поддерживают ключ -c для автоматической проверки всего манифеста без ручного сравнения. Встроенные команды Windows только вычисляют значение, которое вам затем нужно сравнить с официальной строкой вручную.
| Среда | Команда проверки |
|---|---|
| Linux | sha256sum -c SHA256SUMS (проверяет каждый файл, указанный в манифесте) |
| macOS | shasum -a 256 -c checksum.txt |
| Быстрая проверка одного значения | echo "официальное-значение имя-файла" | sha256sum -c - (при успехе выводит OK) |
| Windows | Вычислите значение с помощью команды Get-FileHash <файл> -Algorithm SHA256, затем сравните с официальным значением |
Краткая история безопасности: как MD5 был сломан
MD5 вышел из строя не за одну ночь — от первой уязвимости, найденной в научном сообществе, до поддельных сертификатов в реальном мире, прошло два десятилетия.
-
1992
Публикация алгоритма MD5
Рональд Ривест опубликовал MD5 в RFC 1321. Быстрый, простой в реализации и всегда дающий 128-битный дайджест, он быстро стал стандартом де-факто для контрольных сумм файлов и хранения паролей — и считался криптографически защищённым.
-
2004
Команда Ван Сяоюнь раскрывает коллизии MD5
На CRYPTO 2004 команда под руководством китайского математика Ван Сяоюнь продемонстрировала полную атаку коллизией на MD5 — построение двух файлов с разным содержимым, но одинаковым хэшем (изначально примерно за час на суперкомпьютере IBM P690; последующие улучшения сократили время до секунд на обычном оборудовании). Обусловленная MD5 устойчивость к коллизиям исчезла; овация, которая последовала за выступлением, стала одним из самых известных моментов в криптографии.
-
2008
Поддельные сертификаты попали в реальный интернет
Марк Стивенс, Александр Сотирoв и другие использовали коллизию с выбором префикса для подделки сертификата промежуточного удостоверяющего центра, доверяемого браузерами: сертификаты с разными префиксами несли одинаковую подпись. Теперь злоумышленник мог выдавать «валидные» HTTPS-сертификаты для любого поддельного сайта. Удостоверяющие центры прекратили выдавать сертификаты MD5 вскоре после этого.
-
2012
Вредоносное ПО Flame атакует Windows через MD5
Финансируемое государством вредоносное ПО Flame использовало коллизию MD5 для подписи поддельного сертификата для авторизации терминал-сервера компании Microsoft, что позволило ему распространяться по Ближнему Востоку под видом обновления, подписанного компанией Microsoft. Это была первая атака в реальных условиях с использованием коллизии MD5; компания Microsoft отозвала сертификат в экстренном патче.
-
2017
SHAttered: SHA-1 пал
Google и нидерландский институт CWI (Марк Стивенс и другие) опубликовали два разных файла PDF с одинаковым хэшем SHA-1 — за roughly 6500 процессорных лет и 110 графических процессорных лет. Вскоре после этого браузеры перестали доверять сертификатам SHA-1, а Git-платформы ускорили переход от него. Эра 160-битных хэшей завершилась.
Важное уточнение: атака коллизией не «взламывает» хэш существующего файла — она создаёт два конкретных файла, хэши которых совпадают. Но для подписей и сертификатов этого уже достаточно для фатальной подделки.
Хеширование из командной строки
Когда браузер не под рукой, в каждой ОС есть встроенная команда (показана SHA-256).
| Окружение | Команда |
|---|---|
| Linux / macOS | sha256sum filename (на macOS: shasum -a 256 filename) |
| Windows PowerShell | Get-FileHash filename -Algorithm SHA256 |
| Windows CMD | certutil -hashfile filename SHA256 |
Хеширование в коде
Минимальные примеры на четырёх распространённых языках для написания скриптов или интеграции с API.
async function sha256Hex(data) {
const bytes = typeof data === "string"
? new TextEncoder().encode(data)
: new Uint8Array(data);
const digest = await crypto.subtle.digest("SHA-256", bytes);
return [...new Uint8Array(digest)]
.map((b) => b.toString(16).padStart(2, "0"))
.join("");
}
// Text
console.log(await sha256Hex("hello"));
// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));
Встроенный Web Crypto браузера поддерживает только семейство SHA и требует HTTPS или localhost; для MD5 нужна сторонняя библиотека.
echo hash('sha256', 'hello'); // 64 hex characters
echo md5('hello'); // same as hash('md5', 'hello')
// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');
Функции hash() и hash_file() поддерживают md5, sha1, sha256, sha512 и другие; хеширование файлов происходит потоком, поэтому потребляет мало памяти.
import hashlib
print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())
# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
print(hashlib.file_digest(f, "sha256").hexdigest())
Стандартная библиотека hashlib не требует установки; используйте file_digest() для потокового хеширования больших файлов (Python 3.11+).
use sha2::{Digest, Sha256};
use md5::Md5;
// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));
// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());
Хеширование не входит в стандартную библиотеку; добавьте пакеты RustCrypto sha2 и md-5 в Cargo.toml. При включённом флаге std функция io::copy потоком передаёт файлы в хеширующее устройство.
FAQ
Мои тексты и файлы загружены?
Нет. Все вычисления происходят в вашем браузере: вычисления по семейству SHA используют встроенный API Web Crypto, а MD5 запускается на JavaScript страницы. Инструмент работает даже без подключения к сети — попробуйте с конфиденциальным файлом.
Почему у пустого текста всё равно есть хэш?
Хэш-алгоритмы определяют уникальный фиксированный вывод даже для нулевых байтов. MD5 пустой строки равен d41d8cd98f00b204e9800998ecf8427e, а его SHA-256 начинается с e3b0c442. Этот инструмент просто скрывает результаты, если ввод пустой — чтобы вы не скопировали их случайно.
Может ли он хешировать файлы любого размера?
Это зависит от доступной памяти браузера — установщики и образы дисков размером в несколько сотен МБ обычно обрабатываются нормально. Файлы считываются в память за один проход, поэтому для файлов размером в несколько ГБ лучше использовать командные утилиты (sha256sum, certutil).
Почему хэши имеют разную длину?
Длина определяется алгоритмом: MD5 — 32 шестнадцатеричных символа, SHA-1 — 40, SHA-256 — 64, SHA-512 — 128. На байт приходится два шестнадцатеричных символа, а длина не зависит от размера входных данных: файл размером в один байт и файл размером в несколько ГБ дают одинаково 64 символа при использовании SHA-256.
Можно ли использовать его для создания сигнатур API?
Да. Многие открытые платформы подписывают запросы, хешируя «параметры + секрет» с помощью MD5 или SHA-256. Этот инструмент отлично подходит для проверки значения сигнатуры при отладке; в производственной среде вычисляйте хэши с помощью серверной библиотеки и никогда не встраивайте секрет в код фронтенда.
Как сравнить контрольную сумму с помощью этого инструмента?
Перейдите на вкладку «Контрольная сумма файла», перетащите в неё файл, а в поле над результатами вставьте контрольную сумму с официального сайта. Инструмент автоматически определит алгоритм по длине (32 символа — MD5, 40 — SHA-1, 64 — SHA-256, 96 — SHA-384, 128 — SHA-512): соответствующая строка станет зелёной с пометкой «Выполнено» при совпадении и красной при несовпадении. Регистр символов, пробелы по краям и переносы строк автоматически игнорируются.
Связанные инструменты
Другие инструменты для кодирования, криптографии и паролей.
Base64: кодирование и декодирование
Преобразование между двоичными данными и текстом — удобно для Data URIs и отладки базовой HTTP-аутентификации.
Генератор паролей
Генерация надёжных случайных паролей — пароли должны быть случайными и уникальными, а не «зашифрованными» хэшем.
Проверка надёжности пароля
Проверяет, достаточно ли длины и случайности пароля, а также участвовал ли он в известных утечках.