Генератор хешей
Настоящие дайджесты, вычисленные на вашей машине: MD5, SHA-1, SHA-256, SHA-384, SHA-512 и HMAC-SHA-256 — для введённого текста или перетащенного файла. Это инструмент для той самой работы, с которой ИИ-чат справляется хуже всего: чат-бот, которого попросили о хеше, выдумает строку, которая выглядит идеально и ни с чем не совпадает, потому что он предсказывает текст вместо того, чтобы вычислять. Здесь алгоритмы действительно выполняются, файл никогда не загружается, а ответ — это дайджест, а не догадка о нём.
- MD5
- —
- SHA-1
- —
- SHA-256
- —
- SHA-384
- —
- SHA-512
- —
- HMAC-SHA-256
- Введите ключ, чтобы вычислить HMAC текста или файла выше.
Почему вычисленный и выдуманный хеши выглядят одинаково
Хеш — это отпечаток с особым свойством: измените один бит входа, и примерно половина выходных битов перевернётся. В пространстве хешей нет понятия «близко», нет закономерности, за которую мог бы уцепиться предсказатель текста: 64 шестнадцатеричных символа SHA-256 для любой модели, которая на самом деле не запускала алгоритм, неотличимы от случайности. Поэтому чат-бот делает единственное, что умеет: выдаёт 64 случайно выглядящих hex-символа — идеально отформатированных и полностью неверных. Люди публиковали примечания к выпускам, инструкции по проверке и отчёты об инцидентах, содержащие такие выдумки, потому что в самой строке ничто не выглядит подделкой. Защита скучна и тотальна: никогда не принимайте дайджест от того, кто не может показать свою работу. Эта страница показывает свою работу по построению: MD5 открыто реализован по RFC 1321 (WebCrypto намеренно опускает MD5, поэтому страница, которая его предлагает, либо написала его сама, либо притворяется), семейство SHA выполняется через собственный WebCrypto браузера, а перетащенные файлы читаются локальным File API и хешируются на месте. Ничего не загружается на сервер — это важно, потому что файлы, которые люди хешируют, так часто оказываются чувствительными: образ прошивки под NDA, дамп базы данных, точный бинарник с производственного хоста.
Два соседа дополняют набор. Если у вас есть хеш и вопрос «что его создало?», определитель хешей читает его длину, алфавит и префикс и называет кандидатов — честно, включая тех, кого форма разделить не может. А поскольку другая классическая путаница — это обратимое против одностороннего, статья Base64 — это не шифрование разделяет кодирование (обратимо, без ключа), шифрование (обратимо, с ключом) и хеширование (одностороннее, без ключа) — три идеи, путаница между которыми заполняет отчёты о нарушениях. Чтобы проверить сертификаты работающего сервера, а не файл, проверка SSL и оценка SSL выполняют сетевую сторону той же работы.
Частые вопросы
Разве ИИ-чат-бот не может просто посчитать хеш за меня?
Он может вручить вам строку, которая выглядит точь-в-точь как хеш, — 64 уверенных hex-символа для SHA-256, — и эта строка будет выдумкой. Языковая модель не вычисляет дайджесты; она предсказывает текст, а хеш — это как раз тот вид текста, где «правдоподобно» и «правильно» не имеют ничего общего. Она также не может хешировать файл, который не способна прочитать. Эта страница вычисляет настоящий дайджест на вашей собственной машине, теми же алгоритмами, что использует ваша операционная система, — а если вход — это файл, файл никогда не покидает браузер. Главная статья, никогда не поручайте чат-боту свои секреты, разбирает все три режима отказа.
Почему здесь есть MD5, если он сломан?
Потому что мир по-прежнему публикует контрольные суммы MD5. Страницы загрузок производителей, унаследованные системы, старые дампы баз данных и десятилетие форумных сообщений используют MD5 как отпечаток, а проверка загрузки по опубликованному MD5 требует сгенерировать настоящий MD5 — что WebCrypto делать отказывается, поэтому реализация на этой странице написана по RFC 1321 и привязана к собственным тестовым векторам RFC. «Сломан» для стойкости к коллизиям означает «сломан» для решений о безопасности; установленную базу это не отменяет. Используйте его для проверки унаследованных отпечатков, но никогда — для защиты чего-либо нового.
Что такое HMAC и зачем ему ключ?
Обычный хеш доказывает, что сообщение соответствует дайджесту; он не доказывает, кто его создал, потому что хешировать что угодно может каждый. HMAC подмешивает секретный ключ в конструкцию, поэтому дайджест также удостоверяет отправителя — так доказывают себя вебхуки и подписанные запросы API. Введите здесь тот же текст и ключ, и вы получите значение, которое должен производить ваш код, вычисленное локально, так что производственный секрет вебхука никогда не придётся вставлять в чат или на чужой сервер ради отладки.
Стоит ли хешировать пароль одним из этих алгоритмов?
Нет. Это быстрые дайджесты общего назначения, а «быстрый» — это ровно то, чем хеш пароля быть не должен: атакующий с GPU перебирает миллиарды в секунду. Пароли принадлежат bcrypt, scrypt или Argon2 — намеренно медленным и солёным. Если у вас есть хеш и вы хотите знать, что его создало, определитель хешей читает его форму; если вам нужен новый пароль, генератор паролей создаст его локально.
Hex в верхнем или нижнем регистре — есть разница?
Для дайджеста нет: hex — это нотация, а A-F против a-f — типографика. Разница есть для сравнений, потому что побайтовое сравнение строк назовёт один и тот же хеш разным. Переключатель переписывает все результаты сразу, чтобы вы могли совпасть с форматом контрольной суммы, с которой сравниваете: большинство инструментов Unix печатают в нижнем регистре, некоторые инструменты Windows — в верхнем.