Обложка статьи «В чём разница между шифрованием, кодированием и хешированием?»

В чём разница между шифрованием, кодированием и хешированием?

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

Хеширование

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

Примеры хешей: MD5, семейство SHA.

Шифрование

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

Примеры шифров: шифр Цезаря, AES.

Кодирование

Кодирование — это преобразование входных данных в определённую последовательность бит или заданных символов для удобства дальнейшей работы. Самый простой пример — преобразовать текст в код Хэмминга для дальнейшей передачи по линиям электросвязи. По линии электросвязи нельзя передать буквы, а возможности аналогового сигнала достаточно ограничены, что не позволяет использовать алфавит из 33 букв, но передать битовую последовательность можно. Также этот код самоконтролирующийся и самокорректирующийся, что позволяет исправить некоторые ошибки, которые могут возникнуть при помехах во время передачи данных.

Примеры кодов: кодировка ASCII, Морзе.

***

Применение

Таким образом, при передаче сообщения через интернет:

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

Не смешно? А здесь смешно: @ithumor