Перейти к содержимому
PulsarKit

Посчитать хеш файла или текста

Получите все контрольные суммы файла или строки за один проход и вставьте ожидаемое значение, чтобы сразу увидеть, совпадает ли оно.

Перетащите файлы сюда

· до 300 МБ

Источник
Больше настроек

Как посчитать хеш

  1. 1

    Перетащите файл или вставьте текст

    До пятидесяти файлов за раз или строка, набранная прямо в поле. Большие файлы читаются по частям, чтобы потребление памяти оставалось постоянным.

  2. 2

    Выберите алгоритмы

    По умолчанию считаются все четыре. Если выбрать меньше, создается меньше хешеров, и обработка многогигабайтного файла заметно ускоряется.

  3. 3

    Сравните или скопируйте результат

    Вставьте ожидаемую контрольную сумму, и инструмент по длине определит алгоритм и автоматически проверит совпадение.

Один проход по данным вместо четырех

Наивный способ посчитать четыре контрольные суммы — прочитать файл четыре раза. Здесь файл читается один раз, шестнадцатимегабайтными блоками. Каждый блок по очереди подается во все выбранные хешеры, и только потом читается следующий. Поэтому добавление второго алгоритма стоит только процессорного времени, а не еще одного полного прохода по диску. Поблочное чтение важно и для памяти: двухгигабайтный файл никогда целиком не лежит в ней, там находится только шестнадцать мегабайт за раз. Благодаря этому хеширование большого ISO-образа или видео во вкладке браузера становится возможным.

Какой алгоритм для чего подходит

Чтобы проверить, что скачивание прошло без ошибок, подойдет любой из четырех: случайная порча данных не подбирает коллизии. Используйте тот, который указал издатель. Но если есть риск преднамеренной подмены файла, MD5 и SHA-1 уже сломаны: для MD5 есть практические коллизии, а для SHA-1 они существуют с 2017 года. Совпадающий MD5 больше не доказывает, что файлы одинаковы. Если возможен злоумышленник, по умолчанию берите SHA-256. SHA-512 не безопаснее, но на 64-битном железе часто работает быстрее. Ни один из этих алгоритмов не годится для хранения паролей — там нужен специально медленный алгоритм вроде Argon2 или bcrypt.

Хеш текста зависит от кодировки

Хеш считается по байтам, а строка становится байтами только после применения кодировки. Слово «Привет» даст один SHA-256 в UTF-8 и совсем другой в UTF-16LE, и оба будут корректными, потому что это хеши разных последовательностей байт. Поэтому набор символов выбирается явно, а не предполагается автоматически. По той же причине хеш, посчитанный в другом месте, не совпадет с результатом здесь, пока не совпадут кодировки. UTF-8 используется по умолчанию, потому что почти все современные системы хранят текст в ней.

Файл не загружается на сервер

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

Частые вопросы

Какой алгоритм использовать для проверки скачанного файла?

Тот, который указал издатель. Против случайной порчи данных хватит любого из четырех. Если важна защита от преднамеренной подмены, используйте SHA-256 или SHA-512, так как для MD5 и SHA-1 существуют практические атаки с коллизиями.

Почему MD5 нельзя использовать для паролей?

Потому что он быстрый, а скорость на руку тому, кто перебирает пароли. Пароли нужно хранить с помощью намеренно медленной, посоленной функции, такой как Argon2 или bcrypt. Любой быстрый хеш для этого не годится.

Почему хеш моего текста меняется при другой кодировке?

Потому что хеш считается по байтам, а не по символам, а UTF-8 и UTF-16LE превращают одну и ту же строку в разные последовательности байт. Выберите кодировку, которая совпадает с той, что использовалась там, где был получен сравниваемый хеш.

Можно ли посчитать хеш очень большого файла?

Да. Файл читается шестнадцатимегабайтными блоками и никогда целиком не хранится в памяти, поэтому многогигабайтный файл обрабатывается с расходом памяти значительно меньше ста мегабайт.

Что означает несовпадение контрольных сумм?

Что байты файла отличаются от тех, которые хешировал издатель. Обычно это значит, что скачивание оборвалось или файл повредился. Попробуйте снова скачать его из источника; если хеш все равно отличается, относитесь к файлу как к ненадежному.

Как инструмент определяет, для какого алгоритма я вставил хеш?

По длине. Шестнадцатеричная строка из 32, 40, 64 или 128 символов — это соответственно MD5, SHA-1, SHA-256 или SHA-512. Любая другая длина помечается как неизвестная, чтобы не сравнивать значение с неверным алгоритмом.

Мой файл загружается куда-то для проверки?

Нет. Все вычисления выполняются локально в вашем браузере с помощью библиотеки хеширования на WebAssembly, сервер в этом процессе не участвует ни на одном этапе.

Похожие инструменты

Base64Закодируйте текст или файл в Base64 или декодируйте его обратно. Поддерживаются URL-безопасный алфавит, Data URI и перенос строк по MIME.Создать ZIPУпакуйте файлы или целую папку в один архив. Структура папок сохраняется, а уже сжатые фото и видео не пережимаются зря.Распаковать ZIPРаспакуйте архив прямо в браузере, в том числе с паролем. Опасные пути очищаются, поврежденные элементы показываются отдельно, а не скрываются.Генератор паролейГенерируйте надежные случайные пароли и пароли-фразы прямо в браузере. Для каждого показываются оценка надежности и энтропия.Генератор UUIDСгенерируйте UUID v4, v7 и v1 пакетно, до 10 000 за раз, или расшифруйте существующий идентификатор, чтобы увидеть его версию, вариант и метку времени.Форматер JSONРасставьте отступы, минифицируйте или только проверьте JSON-файл. Ошибки укажем по строке и столбцу, скрытые проблемы назовем прямо.