Хэширование и шифрование
Хэширование и Хэш-функции
Хэширование — это преобразование данных с помощью специального алгоритма. В результате возникает хэш (hash) — отображение данных в виде уникальной строки.
- Размер строки одинаковый для информации разного объема.
- Хэш состоит из цифр и латинс ких букв.
Хэш-функция — алгоритм, который принимает входные данные любого размера и возвращает хэш фиксированного размера. Результат хеш-функции называется «хеш-суммой» или «хешем», а входные данные — «сообщением».
Исходное сообщение -> [Хэш-функция] -> Хэш
Как работает хеш-функция
По шагам:
- Данные разбиваются на части.
- Проходят через сжимающую функцию, которая преобразовывает информацию в меньшее количество бит.
- При необходимости сверки, данные снова хэшируются, и полученный хэш сравнивается с исходным.
Функция должна быть криптостойкой, т.е. её результат практически невозможно вскрыть.
Хэш с солью
Хэш с солью — хэш, к которому добавили случайные данные (соль) перед хэшированием. Это делается, чтобы предотвратить атаки по радужным таблицам и сделать каждый хэш уникальным, даже для одинаковых исходных данных.
Основные характеристики хэш-функций
- Необратимые: невозможно восстановить исходные данные из хэша.
- Для одних и тех же входных данных хэш всегда одинаковый.
- Нет разных входных значений, у которых получится одинаковый хэш.
- Небольшое изменение в исходных данных приводит к сильному изменению хэша.
- Хэш генерируется быстро, даже если входной массив данных большой.
Для чего используется хэширование
- Проверка целостности данных.
- Безопасное хранение паролей.
- Создание цифровых подписей.
Примеры хэширования
- Антивирус хранит в базе хеши вирусов.
- Веб-серверы используют хеши для проверки изменений на страницах.
- Информация о транзакциях криптовалюты хранится в виде хешей.
Популярные алгоритмы хэширования
- MD5 (Message Digest Algorithm 5)
- SHA-1 (Secure Hash Algorithm 1)
- SHA-2 — семейство алгоритмов с общей идеей хеширования данных.
- SHA-256
Шифрование
Шифрование — это преобразование данных в вид, который нельзя прочитать без специального ключа.
Как работает шифрование
Вводятся данные и используется ключ для шифрования. Данные преобразуются алгоритмами в зашифрованный формат, который может быть расшифрован только с использованием соответствующего ключа.
Основные типы
- Симметричное: Один и тот же ключ используется как для шифрования, так и для дешифрования данных.
- Асимметричное: Используются два различных ключа – публичный для шифрования и приватный для дешифрования.