tooly

Генератор хешей

Вычисляйте MD5, SHA-1, SHA-256, SHA-384 и SHA-512 для любого текста или файла. Хеши обновляются по мере ввода. Файлы хешируются локально — проверяйте большие загрузки приватно.

Всё работает в браузере — данные никуда не отправляются

Как пользоваться

  1. 1

    Введите или вставьте текст либо выберите файл.

  2. 2

    Все пять хешей считаются мгновенно.

  3. 3

    Скопируйте нужный.

Для чего нужен хеш

Криптографическая хеш-функция превращает входные данные любого размера в «отпечаток» фиксированной длины. Одни и те же данные всегда дают один и тот же дайджест, а изменение хотя бы одного бита на входе даёт совершенно другой. Восстановить исходные данные по дайджесту невозможно, а для современных алгоритмов на практике невозможно и найти два разных входа с одинаковым дайджестом.

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

  • Проверка загрузок. Для ISO-образов Linux, прошивок и многих установщиков рядом со ссылкой на скачивание публикуется SHA-256. Если ваш файл даёт то же значение, он дошёл целым.
  • Поиск дубликатов. Две фотографии или два документа с одинаковым SHA-256 — это один и тот же файл, как бы они ни назывались.
  • Ключи кэша и ETag. Веб-серверы и инструменты сборки хешируют содержимое, чтобы понять, изменилось ли оно.
  • Целостность в API. Вебхуки, lock-файлы пакетных менеджеров и атрибуты Subresource Integrity — всё это опирается на дайджесты.
  • Отладка. Сравнение хеша, который вычисляет ваш код, с эталонным значением быстро показывает, в чём ошибка — в хешировании или во входных данных.

Пять алгоритмов бок о бок

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

  • MD5, 128 бит, 32 шестнадцатеричных символа. Создан в 1991 году. С 2004 года на практике можно создавать коллизии, поэтому его нельзя использовать там, где злоумышленник может подготовить входные данные. Всё ещё распространён для быстрой проверки дубликатов и в устаревших контрольных суммах.
  • SHA-1, 160 бит, 40 шестнадцатеричных символов. Признан устаревшим после первой публичной коллизии в 2017 году. Git исторически идентифицировал объекты по SHA-1, поэтому он до сих пор встречается повсюду.
  • SHA-256, 256 бит, 64 шестнадцатеричных символа. Текущий стандарт для контрольных сумм, сертификатов, пакетных менеджеров и блокчейнов.
  • SHA-384, 384 бита, 96 шестнадцатеричных символов. Усечённый вариант SHA-512, часто используется в TLS и в хешах Subresource Integrity.
  • SHA-512, 512 бит, 128 шестнадцатеричных символов. То же семейство, что и SHA-256, но с 64-битными внутренними операциями, благодаря которым на 64-битных процессорах он может работать быстрее SHA-256.

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

Как получить совпадающий хеш для текста

Когда ваш дайджест отличается от чужого для «того же самого» текста, входные данные почти никогда на самом деле не совпадают. Что проверить:

  • Перевод строки в конце. echo hello | sha256sum хеширует hello с последующим переводом строки. Текстовое поле здесь хеширует ровно то, что вы ввели, поэтому результаты различаются, пока вы не добавите новую строку в конце. В командной строке лишнего символа помогает избежать echo -n или printf.
  • Окончания строк. Windows использует CR LF, Linux и macOS — LF. Вставленный многострочный текст может менять окончания в зависимости от того, откуда он скопирован.
  • Кодировка. Перед хешированием текст переводится в UTF-8. Система, которая хеширует байты в Latin-1 или UTF-16, получит другой результат для всего, что выходит за пределы простого ASCII.
  • Невидимые символы. Неразрывные пробелы и символы нулевой ширины, скопированные с веб-страниц или из PDF, на экране выглядят точно так же.
  • Регистр шестнадцатеричных цифр. Дайджесты показываются в нижнем регистре. A3F… и a3f… — одно и то же значение; сравнивайте их без учёта регистра.

Хеширование файлов и проверка контрольных сумм

Кнопка «Хеш файла…» читает выбранный файл локально и вычисляет все пять дайджестов по его точным байтам. Имя и дата файла на результат не влияют — только содержимое. Семейство SHA использует встроенную в браузер реализацию Web Crypto; MD5 вычисляется небольшой библиотекой на JavaScript, потому что браузеры его не предоставляют.

Чтобы проверить загрузку, откройте страницу с контрольными суммами у издателя, найдите строку для своего файла и сравните её с соответствующей строкой здесь. Сравнение первых и последних шести-восьми символов — быстрая проверка на здравый смысл; для настоящей безопасности сравнивайте строку целиком. Если значения различаются, скачайте файл заново, прежде чем подозревать подмену: самая вероятная причина — прерванная загрузка.

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

Чем хеши не являются

Простой хеш — это не способ хранить пароли. MD5 и семейство SHA спроектированы быстрыми, а это позволяет злоумышленникам проверять миллиарды вариантов в секунду против утёкшего дайджеста. Для хранения паролей нужна намеренно медленная функция с солью, например bcrypt, scrypt или Argon2. Если вам просто нужен надёжный секрет, воспользуйтесь генератором паролей.

Хеш — это и не шифрование. Он односторонний: ключа, которым можно вернуть исходные данные, не существует.

Вопросы и ответы

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

Нет. Хеширование использует Web Crypto API в браузере. Файл не покидает устройство.

Какой хеш выбрать?

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

Можно проверить скачанный файл?

Да. Выберите файл и сравните SHA-256 со значением на странице загрузки.

Есть лимит размера файла?

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

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