Другое

Хэш — что это и как хэш-функция помогает решать вопросы безопасности

Lorem ipsum dolor

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

  • провести аутентификацию пользователей в приложении или веб-ресурсе;

  • проверить целостность передаваемой информации;

  • защитить информацию, зашифровав ее;

  • обнаружить попытки взлома;

  • и др.

На сегодня известно очень много алгоритмов хэширования, где в основе лежит какая-то хэш-функция. Сегодня мы простыми словами разберем, что такое хэш, хэширование и хэш-функция.

Хэш, хэширование и хэш-функция — что это такое?

Во-первых, все три термина относятся к криптографии. Криптография это наука, которая занимается безопасным сокрытием информации путем ее шифрования или кодировки.

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

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

  1. Одна и та же информация, поступающая в обработку, всегда дает один и тот же результат хэширования.

  2. Вычисления хэш-функции проходят моментально для любого объема входящей информации.

  3. После выполнения хэш-функции невозможно определить, какая информация была на входе.

  4. Хэш-функция не должна выдавать одинаковое хэш-значение для разной информации на входе.

  5. Небольшое изменение во входящей информации должно кардинально менять результат работы хэш-функции, чтобы при сравнении результата невозможно было догадаться, что входящие сообщения были похожи.

Хэш-сумма, хэш-значение или просто хэш — это результат работы хэш-функции. По сути, это сообщение, которое состоит из набора букв, чисел и символов. Такое сообщение имеет фиксированную битовую длину, независимо от того, какой объем информации был на входе.

Закрепим: 

  • хэширование — это процесс преобразования и получения зашифрованной информации;

  • хэш-функция — это инструмент преобразования, который шифрует поступающую информацию;

  • хэш или хэш-сумма — это результат, полученный после работы хэш-функции.

Где применяется хэширование

Что такое хэширование и хэш-функция мы разобрались. Но где конкретно они применяются?

Несколько примеров применения хэширования:

  1. Проверка целостности информации. В этом случае информация пред отправкой хэшируется, потом отправляется. По прибытии информации она снова хэшируется. Потом оба хэша сравниваются. Они должны быть идентичными. Если идентичность нарушена, значит, в процессе передачи информации она была изменена.

  2. Верификация пароля. Пароли пользователей хэшируются, и хранится только их хэш. Когда пользователь вводит пароль для входа, он хэшируется и его хэш сравнивается с хэшом, который хранится в базе данных. Если хэши совпадают, пользователю открывают доступ к ресурсу, куда он планировал зайти. Если хэш не совпадает, доступ будет закрыт. «Чистые» пароли пользователей хранятся все реже. При такой технологии, если пользователь забывает пароль, его не получится восстановить, так как в базе данных хранится хэш, а не пароль, а из хэша получить пароль нельзя. Поэтому пользователям предлагают подтвердить верификацию другими способами, а потом придумать новый пароль, который будет опять захэширован и записан на месте старого.

  3. Цифровая подпись. В этом случае хэшируется не сама подпись, а документ, под которым пользователь ставит подпись. Таким образом, если после подписания документа в него внести хоть малейшее изменение, тогда у него изменится хэш. То есть перед внесением подписи документ хэшируется, а его хэш сохраняется. Спустя какое-то время, если нужно проверить актуальность и достоверность подписанного документа, он снова хэшируется, а первоначальный хэш и последний хэш сравниваются. Если хэши идентичны, тогда документ не изменялся.

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

Заключение

Что такое хэширование? Простыми словами, это процесс однонаправленного шифрования информации, где хэш-функция — это основной инструмент шифрования. Хэширование действительно применяется во многих местах и уже очень давно. Первые алгоритмы хэширования появились еще в начале 80-х, но более массово стали применяться в начале 90-х, когда стал развиваться интернет.

Схожие статьи

Не баг, а фича. Что это значит и откуда появилась эта фраза?
Другое

Не баг, а фича. Что это значит и откуда появилась эта фраза?

Что делать, если не удается открыть файл Office Open XML: как исправить
Другое

Что делать, если не удается открыть файл Office Open XML: как исправить

Что такое Docker? Основные компоненты, разновидности и принцип работы
Другое

Что такое Docker? Основные компоненты, разновидности и принцип работы

Задеплоить: что это за термин и что означает задеплоить приложение?
Другое

Задеплоить: что это за термин и что означает задеплоить приложение?