Найти тему
fubbey

Что такое хэш-функция, как она работает? И где применяется.

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

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

Для идеальной хеш-функции выполняются следующие условия:

а) хеш-функция является детерминированной, то есть одно и то же сообщение приводит к одному и тому же хеш-значению
b) значение хеш-функции быстро вычисляется для любого сообщения
c) невозможно найти сообщение, которое дает заданное хеш-значение
d) невозможно найти два разных сообщения с одинаковым хеш-значением
e) небольшое изменение в сообщении изменяет хеш настолько сильно, что новое и старое значение очень сильно будет отличаться.

Пример:

-2

Переведем слово "Bitcoin" в хэш формата SHA-256

На выходе мы получаем хэш в формате SHA-256:

b4056df6691f8dc72e56302ddad345d65fead3ead9299609a826e2344eb63aa4

Также можно сделать с любым файлом: к примеру возьмем txt документ и напишем в него цифры 123.

Если перевести этот документ в хэш то на выходе получим следующий хэш:

a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3

При малейшем изменении этого файла, меняется хэш.

Применение хеш-функций:

  • Проверка целостности сообщений и файлов

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

  • Верификация пароля
-3

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

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