Введите текст или выберите файл, чтобы сразу получить значение SHA-256; доступны также SHA-1, SHA-384 и SHA-512. Вставьте хеш, который дал издатель, — он сверится автоматически, и вы будете знать, что файл не изменялся. Все вычисления выполняются локально в браузере, данные никуда не отправляются.
Что выбрать: SHA-256 или MD5
Является ли SHA «шифрованием»?
Строго говоря, нет — ровно как и MD5. Шифрование обратимо: имея ключ, можно восстановить исходный текст. А SHA — этоодносторонняя хеш-функция, которая сжимает вход любой длины в дайджест фиксированной длины. По дороге информация теряется, поэтому шага «вернуть обратно» здесь нет. Выражение «шифрование SHA256» употребляют повсеместно, эта страница следует привычке — на деле речь идёт о вычислении значения SHA-256. А значит, не существует и «расшифровки SHA256»: такие сайты выполняют поиск по радужным таблицам, и подробнее это разобрано на другой странице: MD5 онлайн .
Почему пора уходить с MD5 и SHA-1
Дело не в том, что «больше бит — значит безопаснее», а в том, что первые два уже взломаны на практике. Построить два файла с разным содержимым и одинаковым MD5 обычный компьютер успевает за считаные секунды. Для SHA-1 настоящую коллизию в 2017 году показал проект Google SHAttered, а к 2020-му коллизии с выбранным префиксом снизили стоимость атаки до нескольких десятков тысяч долларов. Это значит, что кто-то может подготовить пару файлов с разным содержимым и одинаковыми хешами: проверка у вас пройдёт, а получите вы второй файл. У SHA-256 практических коллизий не известно, и именно его обычно применяют сертификаты TLS, свежие версии Git и контрольные суммы при выпуске программ.
Но пароли на голом SHA-256 не хранят
Это самое частое неправильное применение. SHA-256 спроектирован так, чтобы бытьбыстрым: современная видеокарта считает его миллиарды раз в секунду — ровно то, что нужно злоумышленнику, перебирающему вашу базу. Пароли пользователей храните медленным хешем вроде bcrypt, scrypt или Argon2: они солят автоматически (своя случайная соль на каждого пользователя, что обесценивает радужные таблицы и подстановку учётных данных) и позволяют повышать вычислительную стоимость по мере того, как железо становится быстрее. Соль, добавленная к SHA-256 вручную, спасает от радужных таблиц, но не спасает от перебора против одной конкретной учётной записи.
SHA-256, SHA-384 или SHA-512?
Все три относятся к семейству SHA-2 и различаются размером внутреннего слова и длиной результата. SHA-256 работает с 32-битными словами, обладает самой широкой совместимостью и почти везде является разумным выбором по умолчанию. SHA-512 работает с 64-битными словами, на 64-разрядном процессоре нередко оказывается быстрее и даёт более длинный результат. SHA-384 — это SHA-512, усечённый до 384 бит; он встречается в части сертификатов и наборов шифров TLS. Если особых требований нет, берите SHA-256 — то значение, с которым вы сверяетесь, скорее всего, тоже он.