В чём разница между шифрованием, кодированием и хешированием?
Шифрование, хеширование и кодирование очень похожи, но на самом деле каждое из них используется с определённой целью. Разбираемся, в чём разница.
40К открытий42К показов
Мы невольно используем шифрование, хеширование и кодирование каждый день. Эти понятия кажутся похожими, их довольно легко перепутать, но на самом деле каждое из них используется с определённой целью и имеет свои особенности.
Хеширование
Начнём с самого простого — хеширования. Хеширование — это преобразование входных данных в уникальную последовательность символов, из которой невозможно получить исходное сообщение. Самый яркий пример использования — для проверки целостности. Если изменить в исходном файле или тексте хоть один бит, в результате получим новую уникальную последовательность.
Примеры хешей: MD5, семейство SHA.
Шифрование
Кодирование и шифрование немного сложнее различать между собой, иногда эти слова могут использоваться, как синонимы. Но важно запомнить, что у них абсолютно разные цели. Смысл шифрования — сделать исходное сообщение нечитаемым для любого, кто не владеет ключом. Старые или уязвимые шифры легко взламываются, хотя их цель была именно в том, чтобы скрыть содержание сообщения.
Примеры шифров: шифр Цезаря, AES.
Кодирование
Кодирование — это преобразование входных данных в определённую последовательность бит или заданных символов для удобства дальнейшей работы. Самый простой пример — преобразовать текст в код Хэмминга для дальнейшей передачи по линиям электросвязи. По линии электросвязи нельзя передать буквы, а возможности аналогового сигнала достаточно ограничены, что не позволяет использовать алфавит из 33 букв, но передать битовую последовательность можно. Также этот код самоконтролирующийся и самокорректирующийся, что позволяет исправить некоторые ошибки, которые могут возникнуть при помехах во время передачи данных.
Примеры кодов: кодировка ASCII, Морзе.
Применение
Таким образом, при передаче сообщения через интернет:
- кодирование используется, чтобы передать сообщение и его смогли прочитать на разных устройствах;
- шифрование используется, чтобы ваше сообщение не смог прочитать никто посторонний;
- хеширование используется, чтобы никто не смог незаметно изменить ваше сообщение.
40К открытий42К показов