Рейтинг SEOnews "SEO глазами киентов 2018"
Глоссарий
[мэни-мэни вордс]

Хэш

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

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

Свойства хэша

У хэш-функции есть несколько обязательных свойств:

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

хеш-1.jpg

Практическое использование хэша

Работа с большими объемами информации

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

Например, в массив из нескольких миллионов разных строк длиной 1 млн символов нужно добавить еще одну, при условии, что там ее еще нет. Чтобы не заниматься посимвольным сравнением каждой строки, можно предварительно вычислить хэш каждой из них, и уже сделать сравнение по нему. Вся работа упрощается и ускоряется в разы.

Проверка целостности данных при передаче

Для таких проверок часто используются простые хэш-функции.

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

В технологии блокчейн хэш также используется для проверки целостности данных. Хэш выступает гарантией целостности цепочки транзакций (платежей) и защищает ее от несанкционированных изменений. Благодаря ему и распределенным вычислениям взломать блокчен очень сложно.

хеш-2.jpg

Шифрование

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

Электронные цифровые подписи

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

Хранение паролей

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

Пользователь регистрируется на сайте:

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

Пользователь входит на сайт:

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

Синонимы: нет

Все термины на букву «Х»

Все термины в глоссарии

Читайте нас в Telegram - digital_bar
Читайте нас в Telegram - digital_bar