Перейти к основному содержимому

Хэширование и шифрование

Хэширование и Хэш-функции

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

  • Размер строки одинаковый для информации разного объема.
  • Хэш состоит из цифр и латинских букв.

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

Исходное сообщение -> [Хэш-функция] -> Хэш

Как работает хеш-функция

По шагам:

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

Функция должна быть криптостойкой, т.е. её результат практически невозможно вскрыть.

Хэш с солью

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

Основные характеристики хэш-функций

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

Для чего используется хэширование

  • Проверка целостности данных.
  • Безопасное хранение паролей.
  • Создание цифровых подписей.

Примеры хэширования

  • Антивирус хранит в базе хеши вирусов.
  • Веб-серверы используют хеши для проверки изменений на страницах.
  • Информация о транзакциях криптовалюты хранится в виде хешей.

Популярные алгоритмы хэширования

Шифрование

Шифрование — это преобразование данных в вид, который нельзя прочитать без специального ключа.

Как работает шифрование

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

Основные типы

  • Симметричное: Один и тот же ключ используется как для шифрования, так и для дешифрования данных.
  • Асимметричное: Используются два различных ключа – публичный для шифрования и приватный для дешифрования.

Для чего используется

  • Конфиденциальность: защищает данные от несанкционированного доступа.
  • Целостность: чтобы данные не были изменены.
  • Аутентификация: подтверждает подлинность отправителя данных.

Примеры использования

  • В HTTPS для защиты данных при передаче между веб-браузером и сервером.
  • В емейлах для прочтения только авторизованными пользователями.
  • VPN сервисы шифруют интернет-трафик между устройством и сервером VPN.
  • В базах данных при передаче и хранении.

Популярные алгоритмы

Сравнительная таблица хэширования и шифрования

КритерийХэшированиеШифрование
Выходные данныеСостоят из символов фиксированной длины, представленных в виде хэш-кода (например, шестнадцатеричный или Base64 формат)Могут состоять из различных символов и имеют длину, соизмеримую с длиной исходных данных или увеличенную для соответствия
БезопасностьОбеспечивает целостность данных и обнаружение изменений. Устойчивость к коллизиям и атакам на хэш-функцииОбеспечивает конфиденциальность данных. Защита от несанкционированного доступа
ДлинаДлина хэш-кода фиксирована (например, 256 бит для SHA-256)Длина зашифрованных данных может варьироваться и обычно соизмерима с длиной исходных данных
Обратное преобразованиеНевозможно: хэширование является однонаправленным процессомВозможно: шифрование - двунаправленным процессом (можно расшифровать данные при наличии ключа)
ПрименениеПроверка целостности данных, создание цифровой подписи, безопасное хранение паролейЗащита данных при передаче по сети, хранение конфиденциальной информации, обеспечение приватности
АлгоритмыSHA-256, MD5, SHA-1AES, RSA, Blowfish
Устойчивость к изменениямМалейшее изменение исходных данных приводит к значительному изменению хэш-кодаМалейшее изменение исходных данных приводит к изменению зашифрованного текста (при использовании режимов шифрования с цепочкой блоков, CBC, например)

Подборка материалов

Статьи

  1. Как работает хэширование
  2. Хеширование: разбираемся в деталях
  3. Хеширование
  4. Хеш-функция: что это, для чего нужна и как работает
  5. Хеш-функция, что это такое?
  6. Алгоритм хеширования данных: просто о сложном
  7. Обзор популярных алгоритмов хеширования
  8. Пошагово объясняем, как работает алгоритм хеширования SHA-2 (SHA-256)
  9. Метод повторного хеширования: разница между SHA алгоритмами хеширования
  10. Реализация алгоритма SHA-256
  11. MD5, SHA-1 и SHA-2
  12. Чем шифрование отличается от хеширования?
  13. Хеширование и шифрование: в чем разница?
  14. В чём разница между шифрованием, кодированием и хешированием
  15. Шифрование простыми словами
  16. Что такое шифрование?
  17. Что такое шифрование информации
  18. Шифрование: какие методы существуют и как помогают защитить данные
  19. Алгоритмы шифрования
  20. Алгоритмы шифрования: требования, виды, сферы применения
  21. RSA на пальцах
  22. Криптография
  23. Шифрование: Типы и алгоритмы. Что это такое и какой тип шифрования лучше всего подходит?
  24. Онлайн хэш-функции

Видео

  1. Хеширование и SHA-256. Простыми словами и с примерами!
  2. Как работает хэширование | Хэш-функции
  3. Как работает хэш-таблицы
  4. Хеширование строк
  5. Яндекс: Криптография, шифрование (часть 1)
  6. Яндекс: Криптография, шифрование (часть 2)
  7. Как работает шифрование: с 0 за час
  8. Алгоритм шифрования RSA
  9. Кратко: Асимметричное шифрование
  10. Симметричное шифрование