Посчитать хеш файла или текста
Получите все контрольные суммы файла или строки за один проход и вставьте ожидаемое значение, чтобы сразу увидеть, совпадает ли оно.
Перетащите файлы сюда
· до 300 МБ
Больше настроекМеньше настроек
Как посчитать хеш
- 1
Перетащите файл или вставьте текст
До пятидесяти файлов за раз или строка, набранная прямо в поле. Большие файлы читаются по частям, чтобы потребление памяти оставалось постоянным.
- 2
Выберите алгоритмы
По умолчанию считаются все четыре. Если выбрать меньше, создается меньше хешеров, и обработка многогигабайтного файла заметно ускоряется.
- 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, сервер в этом процессе не участвует ни на одном этапе.