Разница между кодировкой и шифрованием

144

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

Панкадж Агарвал
источник
6
В первом приближении шифрование использует ключ, а кодирование - нет.
Президент Джеймс К. Полк
Если вы декодируете задание с кодированными данными, но если вы расшифровываете зашифрованные данные, не зная ключа secet, Слава вам, вы взломали его.
Суджит Аграхари
1
Кодирование похоже на перевод языка A на язык B, так что люди, знающие язык B, легко его понимают. Шифрование подобно переводу языка A на язык B таким образом, чтобы его понимали только определенные люди, знающие язык B, обычно вы говорите им способ, прежде чем начать перевод, может быть, метод или ключ ... например, относитесь к Pomegranate как к гранате.
Суджит Аграхари

Ответы:

181

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

Шифрование преобразует данные в другой формат таким образом, что только определенные лица могут отменить преобразование.

Для резюме -

Кодирование предназначено для обеспечения удобства использования данных и использует общедоступные схемы.

Шифрование предназначено для сохранения конфиденциальности данных, и, следовательно, возможность отменить преобразование (ключи) ограничены определенными людьми.

Подробнее в ИСТОЧНИКЕ

Сачин Шанбхаг
источник
3
Считаете ли вы «документ с открытым ключом для подписи» кодировкой или шифрованием? :)
Jarod42
@ Jarod42 Цифровая подпись не является ни шифрованием, ни кодировкой документа, поскольку исходные данные из нее не могут быть восстановлены.
Тило
1
«используя схему, которая является общедоступной» - шифрование определенно использует схемы, которые также являются общедоступными, на самом деле любая криптографическая схема, имеющая собственный вес, всегда общедоступна (то есть никаких бэкдоров, как на публике). Часть, которая не является общедоступной, - это секреты, необходимые для расшифровки данных, а не фактическая схема / алгоритмы (например, RSA, DH и т. Д.).
PragmaticProgrammer
32

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

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

Шифрование, с другой стороны, применяет преобразование к фрагменту данных, которое можно отменить только при наличии определенных (и секретных) знаний о том, как их расшифровать. Акцент делается на том, чтобы кому-либо, кроме предполагаемого получателя, было трудно прочитать исходные данные. Алгоритм кодирования, который держится в секрете, является формой шифрования, но довольно уязвим (требуются навыки и время, чтобы разработать любой вид шифрования, и по определению вы не можете попросить кого-то другого создать такой алгоритм кодирования для вас - иначе вы бы придется их убить). Вместо этого наиболее часто используемый метод шифрования использует секретные ключи: алгоритм хорошо известен, но процесс шифрования и дешифрования требует наличия одного и того же ключа для обеих операций, а затем ключ хранится в секрете. Расшифровка зашифрованных данных возможна только с помощью соответствующего ключа .

Виктор Николе
источник
Не всегда нужны одни и те же ключи для шифрования и дешифрования. Разве diff-hellman не использует закрытый ключ отправителя для кодирования и закрытый ключ получателя для декодирования?
Дэвид Манн
«HTTP не позволяет безопасно передавать все символы ...» Я думаю, это заблуждение. HTTP - 8-битный чистый. Вы можете передать любой байт в теле сообщения HTTP. Заголовки имеют спецификацию ASCII, но это не имеет ничего общего с «безопасной» передачей.
Hawkeye Parker
28

Кодировка:

  1. Цель: цель кодирования - преобразовать данные, чтобы их можно было правильно (и безопасно) использовать в системе другого типа.

  2. Используется для: Поддержания удобства использования данных, т. Е. Для обеспечения их правильного использования.

  3. Механизм извлечения данных: нет ключа, и его можно легко изменить, если мы знаем, какой алгоритм использовался при кодировании.

  4. Используемые алгоритмы: ASCII, Unicode, кодирование URL, Base64.

  5. Пример: двоичные данные отправляются по электронной почте или просматриваются специальные символы на веб-странице.

Шифрование:

  1. Цель: цель шифрования - преобразовать данные, чтобы сохранить их в секрете от других.

  2. Используется для: Поддержания конфиденциальности данных, т. Е. Для гарантии того, что данные не могут быть использованы кем-либо, кроме предполагаемого получателя (ей).

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

  4. Используемые алгоритмы: AES, Blowfish, RSA.

  5. Пример: отправка кому-либо секретного письма, которое только он должен иметь возможность читать, или безопасная отправка пароля через Интернет.

Ссылочный URL: http://danielmiessler.com/study/encoding_vs_encryption/

umarali1981
источник
9

Кодирование - это процесс помещения последовательности символов в специальный формат для передачи или хранения.

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

Нанда
источник
3

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

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

Роб
источник
3

Я бы сказал, что обе операции преобразуют информацию из одной формы в другую, разница в том, что:

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

Итак, если он включает (симметричные или асимметричные) ключи (также известные как «секрет»), это шифрование, в противном случае - кодирование.

Waldheinz
источник
2

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

Дипак
источник
1

Кодирование -》 пример данных - 16,
тогда кодировка - 10000 означает, что это двоичный формат или ASCII или UNCODED и т. Д. Которые могут быть легко прочитаны любой системой, чтобы понять его реальный смысл

Шифрование -》 пример данных - 16, Тогда encryprion - 3t57 или может быть что угодно, в зависимости от того, какой алгоритм используется для шифрования, который может быть легко прочитан любой системой, НО только тот, кто может понять его реальное значение, у кого есть его ключ дешифрования

Каника Бхардвадж
источник
0

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

Шифрование предназначено для сохранения конфиденциальности данных и требует использования ключа (хранимого в секрете) для возврата к открытому тексту.

Также есть два основных термина, которые вносят путаницу в мир хеширования и запутывания безопасности.

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

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

Подробнее в статье @ Danielmiessler

Пураначандран Мутусами
источник
1
Кодирование - это способность понимать кодировку. На основе того, какой контент читается и записывается в файлы. Например. UTF-8, UTF-16, UTF-32, ANSI. Шифрование - это преобразование уже закодированных данных.
Арун
0

Шифрование преобразует данные в нечитаемый формат (возможно, содержащий специальные нечитаемые символы).

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

исследователь2020
источник