mikaio.dev

Hash Generator

Type or paste text to generate its cryptographic hashes.

SHA-256
SHA-1
MD5 (approximate)

Генерируйте криптографические хеши для любого текста

Хеш-функция берёт любые входные данные и выдаёт "отпечаток" фиксированной длины, называемый хешем или дайджестом. Одни и те же входные данные всегда дают один и тот же результат, но даже изменение одного символа даёт совершенно другой хеш — это свойство называют лавинным эффектом. Этот инструмент генерирует хеши SHA-256, SHA-1 и MD5 для любого введённого вами текста, вычисляя их полностью в вашем браузере.

SHA-256, SHA-1 и MD5 в сравнении

SHA-256, часть семейства SHA-2, выдаёт 256-битный хеш, записываемый как 64 шестнадцатеричных символа, и считается криптографически надёжным для всех современных применений, поэтому именно он выбирается по умолчанию для новых систем. SHA-1 выдаёт более короткий 160-битный хеш и признан небезопасным с 2017 года, после того как исследователи продемонстрировали, что два разных набора входных данных можно намеренно подобрать так, чтобы получить одинаковый хеш, — коллизию, подрывающую гарантии, которые алгоритм должен был обеспечивать, хотя он всё ещё встречается в некоторых устаревших системах и в старых частях Git, который сам постепенно от него отказывается. MD5 выдаёт ещё более короткий 128-битный хеш и считается криптографически "сломанным": коллизии можно намеренно и быстро создать на современном оборудовании, поэтому сегодня MD5 годится только для задач, не связанных с безопасностью, — например, для простых контрольных сумм файлов или быстрого поиска в базе данных, где создание злоумышленником вредоносной коллизии не является угрозой.

Для чего используются хеш-функции

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

Хранение паролей: сайты никогда не должны хранить пароли в открытом виде. Вместо этого они хранят хеш (в идеале SHA-256 или bcrypt со случайной солью) и хешируют вашу попытку входа для сравнения.

Цифровые подписи: подписание документа включает вычисление его хеша и шифрование этого хеша закрытым ключом. Получатель может проверить хеш с помощью открытого ключа.

Майнинг биткоина: SHA-256 используется в алгоритме доказательства работы биткоина. Майнеры должны найти такое входное значение (nonce), которое даёт хеш, начинающийся с определённого числа нулей.

Системы контроля версий: Git использует SHA-1 (сейчас идёт переход на SHA-256) для идентификации каждого коммита, файла и объекта в репозитории. Хеш служит уникальным идентификатором.

Лавинный эффект

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

"Hello" → SHA-256: 185f8db3...

"hello" → SHA-256: 2cf24dba...

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

Односторонняя функция

Хеши однонаправленны: вы можете вычислить хеш из входных данных, но не можете обратить процесс, чтобы восстановить входные данные из хеша. Единственный способ "взломать" хеш — перебрать множество вариантов входных данных (методом грубой силы или по словарю) и посмотреть, какой из них даёт тот же самый хеш.

Как пользоваться инструментом

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

Почему хеш нельзя обратить

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

Как выбрать подходящий хеш для задачи

Для всего, что связано с безопасностью сегодня — хранения паролей, цифровых подписей, проверки, что скачанный файл не был подделан, — подходящим выбором будет SHA-256 или более сильный представитель семейства SHA-2 или SHA-3, поскольку у SHA-1 и MD5 есть известные слабости, которыми может воспользоваться целеустремлённый злоумышленник. SHA-1 и MD5 остаются полезными только там, где безопасность вообще не важна: быстрая контрольная сумма для обнаружения случайного повреждения, быстрый способ сгенерировать короткий уникальный ключ для поиска в кэше или совместимость со старой системой, которая не обновлялась. Если сомневаетесь, что использовать для чего-то важного, SHA-256 почти всегда самый безопасный вариант по умолчанию.

Приватно и мгновенно

SHA-256 и SHA-1 вычисляются с помощью встроенного в браузер Web Crypto API, а MD5 вычисляется чистой реализацией на JavaScript, поэтому каждый хеш появляется мгновенно, а любой введённый вами текст никогда никуда не отправляется, не логируется и не передаётся кому-либо ещё; инструмент работает офлайн после загрузки страницы, без каких-либо ограничений на количество генерируемых хешей, бесплатно и без установки чего-либо.

Hash generator FAQ

What is a hash?
A cryptographic hash function takes any input and produces a fixed-length output (the hash or digest). The same input always produces the same output, but even a one-character change produces a completely different hash.
What is SHA-256 used for?
SHA-256 is used in Bitcoin mining, SSL/TLS certificates, file integrity verification, password storage (with salt), and digital signatures.
Is MD5 still safe?
MD5 is not considered cryptographically secure for security purposes — collisions (two different inputs producing the same hash) can be generated. It is still used for non-security purposes like file checksums.