Генератор хешей
Создавайте дайджесты MD5, SHA-1, SHA-256, SHA-384 и SHA-512 из любого текста. Все выполняется локально в вашем браузере, поэтому ваш текст никогда не загружается на сервер.
Входной текст
0 симв.
Хеши
Введите текст выше, чтобы увидеть его хеши.
Как пользоваться Генератор хешей
- 1
Введите текст
Введите или вставьте любой текст в панель ввода; хеши вычисляются автоматически из его байтов UTF-8.
- 2
Прочтите все дайджесты
Просмотрите результаты MD5, SHA-1, SHA-256, SHA-384 и SHA-512 вместе, каждый из которых обновляется динамически по мере набора.
- 3
Выберите подходящий алгоритм
Выбирайте SHA-256 или сильнее для всего, что связано с безопасностью, а MD5 или SHA-1 оставьте для несвязанных с безопасностью контрольных сумм и совместимости с устаревшими системами.
- 4
Скопируйте хеш
Нажмите «Копировать» в любой строке, чтобы поместить этот шестнадцатеричный дайджест в буфер обмена, не покидая браузер.
Хеш-функции без тайн: дайджесты, целостность и чего делать нельзя
Что делает хеш-функция
Криптографическая хеш-функция принимает ввод любой длины и выдаёт строку байтов фиксированной длины, называемую дайджестом и обычно показываемую в шестнадцатеричном виде. SHA-256 всегда выдаёт 256 бит — 64 шестнадцатеричных символа — независимо от того, подаёте ли вы одну букву или гигабайтный файл. Функция по своей сути односторонняя: вычислить дайджест из ввода быстро, но восстановить ввод из дайджеста вычислительно невозможно. Именно в этой асимметрии весь смысл.
Этот генератор вычисляет пять дайджестов из одного и того же текста сразу — MD5, SHA-1, SHA-256, SHA-384 и SHA-512 — используя Web Crypto API там, где он доступен. Возможность видеть их рядом делает компромиссы наглядными: более старые функции короче и быстрее, а семейство SHA-2 длиннее и создано для задач безопасности.
Детерминированность и лавинный эффект
Хеши абсолютно детерминированы. Один и тот же ввод всегда даёт один и тот же дайджест, каждый раз, на каждой машине и в каждой корректной реализации — именно это и делает их полезными для сравнения и проверки. Введите слово hello и получите одну определённую строку SHA-256; введите его снова завтра и получите идентичную строку.
При этом отображение чрезвычайно чувствительно к вводу. Измените один символ — даже поменяйте регистр одной буквы или добавьте концевой пробел — и хорошая хеш-функция выдаст совершенно другой, неузнаваемый дайджест, в котором перевернётся примерно половина выходных битов. Это и есть лавинный эффект, и именно поэтому дайджесты бесполезны для оценки того, насколько похожи были два ввода: почти одинаковые входные данные выглядят совершенно несвязанными, и это свойство, а не недостаток.
Повседневное применение: целостность и контрольные суммы
Самое распространённое законное применение хеша — проверка того, что данные пришли в целости. Страница загрузки публикует SHA-256 файла; после скачивания вы хешируете свою копию и сравниваете. Если два дайджеста совпадают символ в символ, файл побайтово идентичен оригиналу и не был усечён или повреждён при передаче. Если различается хотя бы один бит, дайджесты не совпадут.
То же свойство лежит в основе дедупликации и обнаружения изменений. Системы хранения хешируют блоки, чтобы находить дубликаты, не сравнивая их побайтово, системы контроля версий и кэши используют хеши содержимого как идентификаторы, а инструменты сборки хешируют входные данные, чтобы решить, можно ли пропустить работу. Во всех этих случаях хеш — это компактный, надёжный отпечаток содержимого.
Хеширование — это не шифрование
Эта путаница встречается повсюду, и она важна. Шифрование обратимо: с правильным ключом вы можете восстановить исходный открытый текст, потому что вся его цель — защитить данные, которые вы намерены прочитать позже. Хеширование одностороннее намеренно — здесь нет ключа и нет шага расшифровки, потому что цель — это отпечаток, а не восстанавливаемая копия.
Поэтому хеш никогда не является ответом на задачу «сделать этот текст секретным, но читаемым позже». Если вам нужно что-то сохранить и получить обратно, вам нужно шифрование. Если вам нужно лишь проверять, совпадает ли более поздний ввод с более ранним, не храня оригинал, вам нужен хеш. Выбор не того инструмента — это ошибка проектирования, которую не исправит никакая стойкость алгоритма.
MD5 и SHA-1 взломаны для целей безопасности
MD5 и SHA-1 всё ещё вычисляются здесь, потому что они остаются полезными для несвязанных с безопасностью контрольных сумм, совместимости с устаревшими системами и сопоставления значений, выданных старыми системами. Но оба криптографически взломаны: исследователи получили практические коллизии, то есть два разных ввода, дающих один и тот же дайджест, и для SHA-1 это было продемонстрировано на реальных, осмысленных файлах. Коллизия разрушает гарантию безопасности, согласно которой дайджест уникально определяет свой ввод.
Практическое правило простое. Никогда не используйте MD5 или SHA-1 там, где злоумышленник мог бы извлечь выгоду из подделки совпадения, — в цифровых подписях, отпечатках сертификатов, защищённых от подделки журналах или идентификаторах, устойчивых к коллизиям. Для всего, что связано с безопасностью, выбирайте SHA-256 или сильнее. Оставьте устаревшие функции для простых проверок целостности, где противника в принципе нет.
Почему простое хеширование не годится для паролей
Заманчиво хранить пароль, сохраняя его SHA-256 и сравнивая при входе, но это серьёзная ошибка. Универсальные хеши созданы быть быстрыми, и эта скорость позволяет злоумышленникам перебирать миллиарды кандидатов в пароли в секунду против украденной базы данных. Хуже того, два пользователя с одинаковым паролем дают одинаковый дайджест, а предвычисленные таблицы поиска (радужные таблицы) могут мгновенно обратить распространённые пароли.
Правильное хранение паролей использует медленную, посоленную, специально созданную функцию вывода ключа — bcrypt, scrypt или Argon2 — где уникальная случайная соль для каждого пользователя побеждает таблицы поиска, а намеренный фактор сложности делает перебор дорогим. Соль — это просто случайные данные, объединяемые с паролем перед хешированием, чтобы одинаковые пароли давали разные хранимые значения. Используйте этот инструмент, чтобы понимать и проверять хеши, но не используйте «голый» дайджест SHA для хранения учётных данных.
Кодировка, формат вывода и конфиденциальность
Поскольку хеш работает с байтами, кодировка текста должна быть зафиксирована, иначе дайджест становится бессмысленным при переносе между инструментами. Этот генератор кодирует ваш ввод как UTF-8 перед хешированием, поэтому буквы с диакритикой, нелатинские письменности и эмодзи дают стандартные дайджесты, совпадающие с другими реализациями на основе UTF-8. Если дайджест, вычисленный где-то ещё, не совпадает, обычная причина — несоответствие кодировок или случайный концевой перенос строки.
Всё выполняется локально в вашем браузере; ваш ввод никогда не загружается, не записывается в журналы и не сохраняется, что делает безопасным хеширование токенов, содержимого файлов и других конфиденциальных значений. Удобная привычка для проверки — вставить известный ввод и убедиться, что дайджест совпадает со значением, которое сообщает ваше приложение или страница загрузки; когда они совпадают байт в байт, обе стороны кодируют и хешируют одно и то же.
Часто задаваемые вопросы
Какие алгоритмы хеширования генерирует этот инструмент?
Отправляется ли мой ввод на сервер?
Что использовать — MD5 или SHA-256?
Можно ли обратить хеш обратно в исходный текст?
Корректно ли он обрабатывает Unicode и эмодзи?
Похожие инструменты
Продолжайте работу с этими удобными инструментами