Перейти к содержанию
TextArray

Что такое хеш? MD5, SHA-256 и когда вам действительно нужен HMAC

Blog /

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

Что такое хеш-функция?

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

MD5: быстрый, но сломанный

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

SHA-256: текущий стандарт

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

HMAC: когда нужен секрет

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

Когда использовать каждый подход

  1. Используйте простой SHA-256 для проверки целостности файлов, хеширования паролей (с солью и медленной функцией, такой как bcrypt) и публичного снятия отпечатков пальцев.
  2. Использовать HMAC для подписи запросов API, проверки веб-перехватчика и любого сценария, в котором обе стороны делятся секретом.
  3. Пропускать MD5 для всего, что связано с безопасностью. Используйте его только при взаимодействии с устаревшими системами, которые этого требуют.

Ваши данные остаются на вашем устройстве

Оба Хэш-генератор и HMAC-генератор работать полностью в вашем браузере. Ваш текст никогда не отправляется на сервер — он хешируется локально на вашем устройстве, работает в автономном режиме после загрузки страницы и не требует учетной записи или входа в систему. Это означает, что вы можете безопасно хэшировать конфиденциальную информацию, например ключи API, для тестирования, не раскрывая ее в Интернете.

Бонус: измерьте энтропию

Если вы генерируете секреты или пароли, Энтропия Шеннона Калькулятор показывает, сколько случайности (и, следовательно, безопасности) содержится в строке. Более высокая энтропия означает, что сложнее угадать. Используйте его, чтобы убедиться, что сгенерированные вами секреты действительно случайны, прежде чем их развертывать.