8-900-374-94-44
[email protected]
Slide Image
Меню

Разница между кодированием и шифрованием: Кодирование и Шифрование / Хабр

Кодирование и Шифрование / Хабр

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

Но зачем это вообще нужно знать? Чтобы попросту не попасть в ситуацию, когда ваши личные данные, пароли от аккаунтов или банковских карт окажутся в руках мошенников. Как говорится: «Доверяй, но проверяй»

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

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

Определения и различия

Кодирование – процесс преобразования доступной нам информации в информацию понятную компьютерную.

Шифрование – процесс изменения информации таким образом, чтобы её смогли получить только нужные пользователи.

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

  • конфиденциальность – данные скрыты от посторонних

  • целостность – предотвращение изменения информации

  • идентифицируемость – возможность определить отправителя данных и невозможность их отправки без отправителя

Оценить стойкость шифра можно с помощью криптографической стойкости.

Криптографическая стойкость – это свойство шифра противостоять криптоанализу, изучению и дешифровки шифра.

Криптостойкость шифра делится на две основные системы: абсолютно стойкие системы и достаточно стойкие системы.

Абсолютно стойкие системы – системы не подверженные криптоанализу. Основные критерии абсолютно стойких систем:

  • Ключи должны генерироваться для каждого сообщения отдельно

  • Генерация ключей независима

  • Длина ключа должна быть не меньше длины сообщения

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

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

А также от вычислительной сложности шифра.

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

История шифрования

Шифрование берет своё начало ещё из древних времен. Примерно 1300 лет до нашей эры был создан один из первых методов шифрования – Атбаш. Принцип шифрования заключается в простой подставке символов по формуле:, где:

Шифр получил своё название в честь первой, последней, второй и предпоследней буквы Еврейского алфавита — «алеф», «тав», «бет», «шин». Такой шифр имеет низку криптографическую стойкость, потому как алгоритм шифрования довольно прост

С тех самых пор шифрование активно развивалось вместе с развитием нашей цивилизации

Хоть шифры и менялись, но их принцип нет – для расшифровки сообщения требуется ключ. В случае с Абашем ключом может считать последовательность порядковых номеров исходных символов, но этот ключ ещё надо как-то передать. Методы шифрования, которые используются сейчас, научились-таки передавать ключи по открытым и незащищённым каналам связи. Казалось бы, передача ключей шифрования по обычным каналам — это добровольное жертвование своими данными, но не всё так просто. Разберём это на примере популярного алгоритма шифрования «RSA», разработанного в 1977 году.

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

К слову: Простые числа — это те числа, которые могут делиться без остатка либо на 1, либо на себя.

Длина таких чисел может быть абсолютно любая. К примеру, возьмем два простых числа 223 и 13. Их произведение 2899 – будет являться открытым ключом, который мы и будем передавать по открытому каналу связи. Далее нам необходимо вычислить функцию «Эйлера» для произведения этих чисел.

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

Возможно, звучит непонятно, но давайте это разберем на небольшом примере:

 φ (26) [фи от двадцати шести] = какому-то числу чисел, которое всегда будет меньше 26, а сами числа должны иметь только один общий делитель единицу с 26.

Давайте считать:

1 – подходит всегда, идем дальше;

2 – делится и на 2, и на 1, как и число 26, — не подходит;

3 – делится и на 3, и на 1, а вот число 26 не делится на 3, — подходит;

4 – имеет общие делители 2 и 1 с 26 — не подходит;

5 – только на 1 — подходит;

 6 – на 2 и 1 — не подходит;

7 – только на 1 – подходит;

и так далее до 25.

Общее количество таких чисел будет равно 12. А найти это число можно по формуле: φ(n*k) = (n-1)(k-1) в нашем случае 26 можно представить как 2 * 13, тогда получим φ(26) = φ(2 * 13) = (2-1)*(13-1) = 1 * 12 = 12

Теперь, когда мы знаем, что такое функция Эйлера и умеем её вычислять найдем её для нашего открытого ключа – φ(2899) = φ(223 * 13) =(223 – 1)*(13-1) = 222 * 12 = 2664

После чего нам нужно найти открытую экспоненту. Не пугайтесь, тут будет гораздо проще чем с функцией «Эйлера».

Открытая экспонента – это любое простое число, которое не делится на функцию Эйлера. Для примера возьмем 13. 13 не делится нацело на число 2664. Вообще открытую экспоненту лучше выбирать по возрастанию простым перебором, а не просто брать случайную. Так для нашего примера разумнее было бы взять число 5, но давайте рассмотрим на примере 13

Следующий шаг – закрытая экспонента. Вычисляется она банальным перебором по этому равенству: d * e mod φ(n) = 1, где

  • φ(n) — функция Эйлера

  • e – открытая экспонента

  • mod – остаток отделения

а число d, которое и является закрытой экспонентой, мы должны подобрать перебором, либо попытаться выразить через формулу d = ceil(φ(n) / e), где ceil – округление в большую сторону.

В обоих случаях у нас получится число 205

На этом подготовка отправки сообщения успешно завершается и начинается самое веселое – отправка данных для дешифрования сообщения. 205 mod 2899 = 92.

Вуаля, и мы имеет исходное число. Но, что насчет перехваченных сообщений? У злоумышленника есть сообщение, ключ и экспонента, но как мы помни для дешифровки ему ещё нужна секретная экспонента, она же секретный ключ, но для того, чтобы вычислить её, ему придется разложить исходный ключ 2899 на множители, а сделать это не так уж и просто, особенно когда вместо двух чисел 223 и 13, будут использовать числа длиной несколько десятков символов

Но ничто в мире не идеально, в том числе и этот метод.

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

Второй недостаток – так же связан с генерацией ключа. Как мы с вами помним: «ключи должны генерировать независимо от каких-либо факторов», но именно это правило нарушается, когда мы пытается сгенерировать строго простые числа.

Третий недостаток – подбор и перебор чисел для экспонент.

Четвертый – длина ключей. Чем больше длина, тем медленнее идет процесс декодирования, поэтому разработчики пытаются использовать наименьшие по длиннее ключи и экспоненты. Даже я акцентировал на это внимание, когда говорил, что лучше взять число 5, вместо 13 для открытой экспоненты. Именно из-за этого и происходит большая часть взломов и утечек данных

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

Этот метод основывается на принципе квантовой суперпозиции – элементарная частица может сразу находится в нескольких положениях, иметь разную энергию или разное направление вращения одновременно. По такому принципу и работает передача ключей шифрования по протоколу BB-84.

Есть оптоволокно, по которому передаются единичные фотоны света. Мы, как отправитель может сгенерировать абсолютно любой двоичный ключ, по тому же принципу квантовой супер позиции, ну или использовать обычные генераторы псевдослучайных чисел. Допустим мы хотим передать ключ 101001011. Для этого нам нужно принять за обозначение какое положение фотона соответствует единице, а какое нулю. Представим, что вертикальное положение – это 1, а горизонтальное – 0. Если оставить все так, то от передачи ключей таким образом не будет никакого смысла, ведь тогда злоумышленник всегда сможет измерить фотон, получить его значение, создать и отправить точно такой же обратно человеку, которому мы хоти передать ключ. Поэтому были введены ещё два положение – диагональные. Предоставим вертикальную волну, или же значение 1 и отклоним её на 45 градусов влево. Это будет вторая единица. Вернемся обратно и отклоним на 45 градусов вправо – это будет второй 0.

Вернемся к нашему ключу 101001011. Мы случайным образом выбираем направление – обычное или диагональное. Для удобства присвоим обычному номер 1, а диагональному 2.

Давайте отправим ключ – 1(1), 0(2), 1(1), 0(1), 0(1), 1(2), 0(2), 1(1), 1(2). Теперь человеку, которому мы отправляем ключ, нужно точно так же, совершенно случайно, выбрать случайное направление.

Допустим он выбрал направления: 221111212. Поскольку есть всего 2 плоскости отправки: 1 и 2, они же называются: канонический и диагональный базис, то шанс того, что он выбрал правильные направления 50%.

Если он угадал базис – он получил верное значение, если нет – неверное. Учитывая его направления, он получил: 001000011. Теперь нужно отсеять неправильные значения: можно сделать это обменом базисов по любому, даже не защищенному, каналу связи. После этого у нас обоих останется ключ: 0100011. Теперь с помощью его мы можем передавать и кодировать сообщения по обычному методу шифрования.

А что, если кто-то перехватит отправку кода? Тогда ему придется точно также подбирать случайным образом базисы, что добавит ещё 25% погрешности при получении кода человеку, которому мы изначально и отправили его. Чтобы проверить это, после отсеивания мы, как отправитель, должны проверить сколько процентов кода оказалось не верным. В нашем 1 случае это (9 – 7)/9 * 100% = 22%, если это число будет больше 50%, то мы начнем повторную отправку ключей, до тех пор, пока погрешность не будет меньше 50%

Заключение

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

Список литературы и материалов:

  • «RSA» и квантовое шифрование

  • Квантовое шифрование

  • Алгоритм шифрования: «RSA»

  • Алгоритм шифрования: «RSA»

  • Шифрование обобщенно

  • Что такое кодирование

  • Первые в мире шифры

  • Что такое экспонента

  • Что такое функция «Эйлера»

Кодирование и шифрование — в чём разница?

👉 Эта статья — для расширения кругозора. Если нужна практика, заходите в раздел «Это баг», там вагон практики.

«Данные закодированы» и «данные зашифрованы» — это не одно и то же. После этой статьи вы тоже сможете различать эти два подхода к данным.

Кодирование 

Кодирование — это представление данных в каком-то виде, с которым удобно работать человеку или компьютеру. 

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

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

Слово «волк» и сопутствующий ему звук — это вид кодирования. Сам волк может не использовать такую кодировку

Для следующего примера возьмём букву «а». Её можно произнести как звук — это значит, что мы закодировали эту букву в виде звуковой волны. Также эту букву можно написать прописью или в печатном виде. Всё это примеры кодирования буквы «а», удобные для человека. 

В компьютере буква «а» кодируется по-разному, в зависимости от выбранной кодировки внутри операционной системы:

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

Сломанная кодировка

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

Похожая ситуация в компьютере. Допустим, вы увидели такой текст: 

рТЙЧЕФ, ЬФП ЦХТОБМ лПД!

Здесь написано «Привет, это журнал Код!», только в кодировке КОИ-8, которую интерпретировали через кодировку CP-1251. Компьютер не знал, какая здесь должна быть кодировка, поэтому взял стандартную для него CP-1251, посмотрел символы по таблице и выдал то, что получилось. Если бы компьютер знал, что для этой кодировки нужна другая таблица, мы бы всё прочитали правильно с первого раза.

Ещё кодирование

Кодированием пользуется весь мир на протяжении всей своей истории:

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

    Здесь зашифрована та же самая фраза — «Привет, это журнал Код!». Но не зная ключа для расшифровки и принципа шифрования, вы не сможете её прочитать. 

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

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

    Шифрование бывает аналоговое и компьютерное, простое и сложное, взламываемое и нет. Обо всём этом ещё расскажем, подписывайтесь.

    Текст и иллюстрации

    Миша Полянин


    Редактор и картинка с волком

    Максим Ильяхов


    Корректор

    Ира Михеева


    Иллюстратор

    Даня Берковский


    Вёрстка

    Маша Дронова


    Доставка

    Олег Вешкурцев

    Шифрование, кодирование и хэширование: объяснение

    Содержание
    • Что такое кодирование?
    • Что такое хеширование?
    • Что такое шифрование?
    • Резюме

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

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

    Ярким примером стала утечка информации из Adobe. Они использовали термин «шифрование» в своем пресс-релизе, когда хотели сказать, что у них были хешированные и засоленные пароли. Эта путаница вызвала бурю негодования, поскольку шифрование — гораздо более надежный метод, чем хеширование и соление (о чем мы поговорим позже).

    Что такое кодирование?

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

    Пример кодирования: Base64

    Возьмем сценарий, в котором пользователь хочет загрузить резюме на веб-сайт с вакансиями, а веб-сервер сохраняет файл в виде файла .docx. Резюме пользователя может содержать конфиденциальную информацию, такую ​​как домашний адрес, дату рождения или номер социального страхования. Чтобы защитить эти данные, пользователь может закодировать свое резюме в формате Base64 перед его загрузкой на веб-сайт. После загрузки резюме веб-сервер декодирует его обратно в формат .docx для хранения.

    Что такое хеширование?

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

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

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

    Пример хеш-функции: SHA512

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

    Что такое шифрование?

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

    Существует два основных типа шифрования: симметричный ключ и открытый ключ.

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

    Пример шифрования: AES 256

    AES — это расширенный стандарт шифрования и шифрование с симметричным ключом. 77 возможных ключей.

    Сводка

    • Кодировка: Обратимое преобразование формата данных, используемое для сохранения удобства использования данных.

    • Хэширование: Односторонняя сводка данных, которую нельзя отменить и которая используется для проверки целостности данных.

    • Шифрование: Безопасное кодирование данных, используемое для защиты конфиденциальности данных.

    Подпишитесь на нашу рассылку новостей

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

    спросил

    Изменено 1 месяц назад

    Просмотрено 117 тысяч раз

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

    • шифрование
    • кодирование

    3

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

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

    Для сводки —

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

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

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

    4

    Кодирование:

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

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

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

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

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

    Шифрование:

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

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

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

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

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

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

    com/study/encoding_vs_encryption/

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

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

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

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

    2

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

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

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

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

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

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

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

    Подробнее @ Danielmiessler артикул

    1

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

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

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

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

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

    Кодировка -》 пример данных 16
    Тогда кодировка 10000 означает, что это двоичный формат или ASCII или НЕКОДИРОВАННЫЙ и т.д. Который может быть легко прочитан любой системой и легко понять его истинное значение

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

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

    Кодировка — это процесс преобразования заданного набора символов в соответствующий принятый формат, возьмите URL этого вопроса,