Калькулятор хеша текста и файла

Вставьте текст или выберите файл, чтобы вычислить и сверить SHA-хеш.

Что показывает SHA-хеш

Текст и файл ведут к одному цифровому отпечатку

Хеш превращает содержимое текста или файла в строку фиксированной длины. Для одинаковых байтов и одного алгоритма она повторится, а изменение даже одного байта обычно даст совсем другую строку. Поэтому хеш удобно сравнивать с контрольной суммой, опубликованной рядом с файлом. Этот инструмент считает SHA-256, SHA-384 и SHA-512 прямо в браузере, показывает результат шестнадцатеричными знаками и может сразу сравнить его с ожидаемым значением.

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

Какие байты участвуют в расчёте

В текстовом режиме символы переводятся в байты UTF-8. Английское abc занимает 3 байта, а русское кот занимает 6, потому что каждая из этих кириллических букв кодируется двумя байтами. Пробел в начале, перевод строки в конце и разный регистр букв остаются частью текста. Калькулятор ничего не обрезает и не приводит к нижнему регистру перед расчётом.

Для файла браузер читает байты как есть. Текстовый файл с тремя байтами abc и введённое в форму abc получат одинаковый SHA-256. Если редактор сохранил после слова невидимый перевод строки, в файле уже 4 байта и хеш изменится. Это частая причина расхождения, когда на экране два текста выглядят одинаково.

SHA-256 создаёт 256 бит результата, то есть 32 байта. Каждый байт записывается двумя шестнадцатеричными знаками, поэтому готовый хеш состоит из 64 знаков. У SHA-384 их 96, у SHA-512 их 128. Все три алгоритма входят в стандарт SHA-2, описанный в FIPS 180-4 Национального института стандартов и технологий США. Более длинная строка не означает, что файл больше: длина хеша фиксирована для выбранного алгоритма.

Как сверить контрольную сумму

Сначала выберите тот же алгоритм, который указан рядом с опубликованной суммой. SHA-256 нельзя сравнивать с SHA-512: это разные функции с разной длиной ответа. Затем выберите файл или введите текст, вставьте ожидаемый хеш и запустите расчёт. В поле сравнения допускаются пробелы между группами и прописные шестнадцатеричные буквы, но не имя файла или надпись SHA256:. При несовпадении проверьте алгоритм, источник суммы и точные байты файла прежде, чем пользоваться им.

Если суммы совпали, выбранный алгоритм дал одинаковый отпечаток для ваших байтов и эталона. Для случайной порчи это сильная проверка целостности. Но эталон должен приходить из источника, которому вы доверяете независимо от скачанного файла. Хеш не проверяет подпись издателя и не ищет вредоносный код; подлинность и безопасность решают другие механизмы.

Что меняется на знакомых примерах

Короткая строка для проверки работы. Введите abc и оставьте SHA-256. Из 3 байтов получится хеш ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Если вы получили другой результат, проверьте пробелы и переносы: в исходной строке их быть не должно.

Перевод строки после слова. Текст abc с одним завершающим переводом строки занимает 4 байта. Его SHA-256 начинается с edeaaff3, а не с ba7816bf. При копировании из редактора последняя невидимая строка иногда путешествует вместе с текстом, хотя визуально это всё ещё те же три буквы.

Пустой файл тоже имеет хеш. Файл размером 0 байт даст SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. Это не ошибка и не отсутствие результата. Такой же хеш получится у пустого текстового поля: в обоих случаях в функцию поступает ноль байтов.

Документ после переименования. Пусть у файла размером 12 000 байт получился SHA-256. Если назвать его по-другому, не меняя содержимого, результат останется прежним. Так можно сравнить две копии с разными именами. Если одна копия была пересохранена редактором, даже при похожем изображении страницы её байты и хеш могут измениться.

Русское слово и кодировка. Для кот браузер считает 6 байтов UTF-8, а SHA-256 начинается с 77095ebd. Если другая программа обрабатывает ту же видимую надпись в иной кодировке, байты не совпадут и хеш тоже. Для сравнения между программами нужно договориться не только о словах, но и о кодировке.

Другая длина отпечатка. У того же abc SHA-384 начинается с cb00753f и содержит 96 шестнадцатеричных знаков, а SHA-512 начинается с ddaf35a1 и содержит 128. Не стоит обрезать длинный результат до 64 знаков ради сравнения с SHA-256: это не превратит один алгоритм в другой.

Где заканчивается польза хеша

Хеширование не шифрует текст. Результат нельзя просто «расшифровать» обратно, но короткую предсказуемую строку можно угадать, перебрать распространённые варианты и сравнить их хеши. По этой причине обычный SHA-256 не подходит как готовый способ хранения паролей. Для паролей нужны специальные схемы с солью и затратным вычислением; генератор паролей решает другую задачу и создаёт новый секрет, а не отпечаток существующего.

Инструмент не отправляет файл обработчику на сервер и не сохраняет введённый текст или ожидаемый хеш в адресе страницы и sessionStorage. Но не вставляйте секреты в незнакомую веб-страницу без необходимости. Для больших файлов здесь есть предел 64 МиБ, для текста 2 МиБ в UTF-8: встроенный браузерный метод считывает вход целиком в память и не обрабатывает его потоком. Для большого архива или образа системы используйте системную утилиту с потоковым чтением.

Если нужно не сверять, а передать текст в другой записи, конвертер Base64 кодирует и декодирует байты без проверки целостности. Для короткой двоичной последовательности бит чётности обнаруживает некоторые ошибки передачи, но не заменяет криптографический хеш файла. Выбор инструмента зависит от вопроса: изменить представление, заметить простую ошибку или сравнить содержимое побайтово.

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

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

Почему у одинакового текста бывают разные хеши?

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

Влияет ли имя файла на его SHA-хеш?

Нет. Считается содержимое файла, а не его название, папка или дата создания. Переименование без изменения байтов оставляет хеш прежним.

Можно ли сравнивать хеши с разными регистрами букв?

Да. Буквы A-F и a-f обозначают те же шестнадцатеричные значения. В поле ожидаемого хеша регистр игнорируется, как и пробелы между группами.

Нужно ли хешировать пустую строку?

Это допустимый вход из нуля байтов. Для SHA-256 он даёт определённый результат, начинающийся с e3b0c442, а не пустой ответ.

Означает ли совпадение, что скачанный файл безопасен?

Нет. Оно показывает согласованность файла с эталонной суммой по выбранному алгоритму. Если сумму подменили вместе с файлом, совпадение не докажет подлинность и не обнаружит вредоносный код.

Можно ли восстановить текст по SHA-хешу?

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

Почему файл больше 64 МиБ не принимается?

Браузерный Web Crypto digest получает файл целиком в памяти, а не поток по частям. Ограничение 64 МиБ защищает вкладку от чрезмерного расхода памяти; для больших файлов удобнее системная утилита.

Подходит ли обычный SHA-256 для хранения паролей?

Нет. Быстрый хеш удобен для проверки содержимого, но пароли хранят с помощью специальных затратных алгоритмов и индивидуальной соли. Один SHA-256 от пароля такой схемой не становится.

Похожие калькуляторы

Возможно вам пригодятся ещё несколько калькуляторов по данной теме:

  • Конвертер Base64. Кодируйте текстовую строку в Base64 и декодируйте её обратно в UTF-8.
  • Калькулятор бита чётности. Введите двоичную строку, чтобы добавить или проверить бит чётности.
  • Декодер текста. Исправьте кракозябры и восстановите читаемый текст, не стирая оригинал.
  • Визуальный редактор HTML. Редактируйте бесплатно и онлайн HTML-код, и сразу же смотрите внешний вид текста и страницы в режиме предпросмотра (WYSIWYG).
  • Генератор паролей. Создайте сложный и надёжный пароль бесплатно с помощью онлайн-генератора из 8, 10, 12 или большего числа рандомных (случайных) символов.
  • Генератор QR-кода. Вставьте ссылку или текст. Готовый QR-код можно скопировать или скачать как PNG.
  • Сумма прописью. Переведите сумму в виде цифр в сумму прописью - текстом. Сделайте расшифровку правильно для договоров и других документов.
  • Хрономер: время чтения текста. Оцените, сколько времени займёт чтение или произнесение текста вслух. Просто введите текст в форму, и хронометраж рассчитается автоматически.
  • Рандомайзер: генератор случайных чисел. Выберите случайное число в нужном диапазоне для любых целей, в частности для розыгрышей и онлайн-лотерей в соцсетях.
  • Случайный выбор из списка. Добавьте варианты по одному в строке, укажите количество и выберите режим повторов.

Есть что добавить?

Напишите своё мнение, комментарий или предложение.