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


Шифрование против кодирования против хеширования

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

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

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

Пример: ASCII, BASE64, UNICODE

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

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

При шифровании данные, которые должны быть зашифрованы (называемые открытым текстом), преобразуются с использованием алгоритма шифрования, такого как шифрование AES или шифрование RSA, с использованием секретного ключа, называемого шифром. Зашифрованные данные называются зашифрованным текстом, и, наконец, секретный ключ может использоваться предполагаемым получателем для преобразования его обратно в обычный текст.

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

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

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

Например: когда вы отправляете изображения и текстовые сообщения через WhatsApp через StackOverflow (отправка в вопросах), изображения отправляются на другой сервер, а текст отправляется на другой сервер для повышения эффективности. Таким образом, для проверки изображений на предмет того, что изображения не были изменены в процессе передачи данных через Интернет, можно использовать алгоритм хеширования, такой как MD5.

Другая цель хеширования — проверка паролей для входа на различные веб-сайты, как показано на рисунке.

Разница между Хешированием пароля и Шифрование

В текущем верхнем рейтинге этот вопрос говорится:

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

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

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

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

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

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

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

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

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

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

Хорошее ли шифрование?

Обычные текстовые пароли могут быть зашифрованы с использованием симметричных алгоритмов шифрования, таких как DES, AES или с любыми другими алгоритмами, и сохраняться в базе данных. При аутентификации (подтверждающей идентификацию с именем пользователя и паролем) приложение расшифровывает зашифрованный пароль, хранящийся в базе данных, и сравнивает с предоставленным пользователем пароль для обеспечения равенства. В этом типе подхода к обработке паролей, даже если кто-то получает доступ к таблицам базы данных, пароли не будут просто повторно использоваться. Однако в этом подходе есть и плохие новости. Если каким-то образом кто-то получит криптографический алгоритм вместе с ключом, используемым вашим приложением, он сможет просматривать все пароли пользователей, хранящиеся в вашей базе данных, путем дешифрования. «Это лучший вариант, который я получил», — кричит разработчик программного обеспечения, но есть ли лучший способ?

Криптографическая хэш-функция (только в одну сторону)

Да, может быть, вы пропустили этот момент. Вы заметили, что нет необходимости расшифровывать и сравнивать? Если существует метод однонаправленного преобразования, в котором пароль может быть преобразован в какое-то преобразованное слово, но обратная операция (генерация пароля из преобразованного слова) невозможна. Теперь, даже если кто-то получает доступ к базе данных, нет никакого способа, чтобы пароли были воспроизведены или извлечены с использованием преобразованных слов. В этом случае вряд ли кто-то сможет узнать секретные пароли ваших пользователей; и это защитит пользователей, используя один и тот же пароль для нескольких приложений. Какие алгоритмы могут быть использованы для этого подхода?

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

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

9 ответов

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

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

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

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

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

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

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

Кодировка:

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

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


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

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

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

Шифрование:

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

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

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

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

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

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

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

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

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

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

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

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

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

Кодировка:

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

Примеры: ASCII, Unicode, кодировка URL, Base64

Шифрование:

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

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

Примеры: AES, Blowfish, RSA

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

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

Кроме того, в мире безопасности есть два основных термина: Хеширование и запутывание

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

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

Мастер Йода рекомендует:  Инструменты командной строки — всё по этой теме для программистов

В чем разница между запутыванием, хэшированием и шифрованием?

в чем разница между запутыванием, хэшированием и шифрованием?

вот мое понимание:

  • хэширование является односторонним алгоритмом; не может быть отменено
  • обфускация похожа на шифрование, но не требует никакого «секрета» для понимания (ROT13-один из примеров)
  • шифрование обратимо, но для этого требуется «секрет»

11 ответов

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

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

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

Это объяснение высокого уровня. Я постараюсь уточнить их:

хеширование-в идеальном мире это случайный оракул. Для одного и того же входа X вы всегда получаете один и тот же выход Y, который никоим образом не связан с X. Это математически невозможно (или, по крайней мере, не доказано). Ближайший мы получаем люк функций. H(X) = Y для С H-1(Y) = X так трудно сделать, что вам лучше попробовать грубую силу A Z такую, что H (Z) = Y


обфускация (my мнение) — любая функция f, такая, что f(a) = b, где вы полагаетесь на секретность f. F может быть хэш-функцией, но часть «запутывание» подразумевает безопасность через неясность. Если бы вы никогда не видели ROT13 раньше, это было бы запутывание

шифрование-Ek(X) = Y, Dl (Y) = X, где E известно всем. k и l являются ключами, они могут быть одинаковыми (в симметрии они одинаковы). Y-шифрованный текст, X-открытый текст.

A хэш это алгоритм в одну сторону раньше сравните входные данные со ссылкой без ущерба для ссылки.

Он обычно используется в логинах для сравнения паролей, и вы также можете найти его на вашем reciepe, если вы ходите по магазинам с помощью кредитной карты. Там вы найдете свой номер кредитной карты с некоторыми номерами скрыты, таким образом, вы можете доказать С высокой propability что ваша карта использовалась для покупки вещей, пока кто-то поиск по вашему мусору не сможет найти номер вашей карты.

очень наивный и простой хэш «первые 3 буквы строки». Это означает, что хэш » abcdefg «будет»abc». Эта функция, очевидно, не может быть отменена, что является всей целью хэша. Однако, обратите внимание, что «abcxyz» будет иметь точно такой же хэш, это называется столкновение. Так что снова:хэш-доказывает лишь с определенной propability, что два сравниваемые значения одинаковы.

еще один очень наивный и простой хеш-5-модуль числа, здесь вы увидите, что 6,11,16 и т. д.. имеют одинаковый хэш: 1.

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

обфускации в криптографии кодируется входные данные до Он хэшируется или шифруется.

Это делает атаки грубой силы менее выполнимыми, так как становится все труднее определить правильный открытый текст.

вот как я всегда смотрел на это.

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

обфускация делает что-то труднее читать по символу замена.

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

это неплохое описание высокого уровня. Вот некоторые дополнительные соображения:

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

шифрование включает в себя хранение некоторых секретных данных, и безопасность секретных данных зависит от сохранения отдельного «ключа» в безопасности от плохих парней.

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

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

хэширование-создание поля проверки для некоторых данных (для определения изменения данных). Это односторонняя функция, и исходные данные не могут быть получены из хэша. Типичные стандарты для этого SHA-1, SHA256 etc.

Obfuscation-измените свои данные / код, чтобы запутать кого-либо еще (без реальной защиты). Это может привести или не привести к потере некоторых исходных данных. Для этого нет реальных стандартов.

шифрование-использование ключа для преобразуйте данные так, чтобы только те, у кого есть правильный ключ, могли его понять. Зашифрованные данные могут быть расшифрованы для получения исходных данных. Типичные стандарты DES, TDES, AES, RSA etc.

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

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

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

шифрование двухстороннее, и там всегда какая-то дешифровка работает наоборот.

Итак, да, вы в основном правы.

обфускация скрывает или делает что-то труднее понять.

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

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

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

Как правило, разница между хэшированием и шифрованием заключается в том, что хэширование обычно использует формулу для перевода данных в другую форму, где шифрование использует формула, требующая ключа(ов) для шифрования/дешифрования. Примерами может быть базовая кодировка 64, являющаяся хэш-алгоритмом, где md5-алгоритм шифрования. Любой может отключить данные, закодированные в base64, но вы не можете расшифровать зашифрованные данные md5 без ключа.

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

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

10 ответов

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: ASCII, BASE64, UNICODE

ASCII ЗНАЧЕНИЕ ‘A’ IS: 65

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

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

При шифровании данные, которые должны быть зашифрованы (называемые открытым текстом), преобразуются с использованием алгоритма шифрования, такого как шифрование AES или шифрование RSA, с использованием секретного ключа, называемого шифром. Зашифрованные данные называются зашифрованным текстом, и, наконец, секретный ключ может использоваться предполагаемым получателем для преобразования его обратно в обычный текст.

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

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

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

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

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

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

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

Мастер Йода рекомендует:  Автостопом по машинному обучению на Python

В чем разница между запутыванием, хэшированием и шифрованием?

В чем разница между запутыванием, хэшированием и шифрованием?

Вот мое понимание:

  • Хеширование является односторонним алгоритмом; не может быть обращено
  • Obfuscation похож на шифрование, но не требует никакого «секрета», чтобы понять (ROT13-один из примеров)
  • Шифрование обратимо, но для этого требуется «секрет»


11 ответов

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

Вот как я всегда смотрел на это.

Хэширование-это получение значения из
другой, используя алгоритм набора. В зависимости от используемого algo, это может быть один путь, может не быть.

Obfuscating делает что-то
труднее читать по символу
замена.

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

Это объяснение высокого уровня. Я постараюсь усовершенствовать их:

Hashing-в идеальном мире это случайный оракул. Для одного и того же входа X вы всегда получаете один и тот же выход Y, который никоим образом не связан с X. Это математически невозможно (или, по крайней мере, не доказано, что это возможно). Ближе всего мы получаем функции люка. H (X) = Y для С H-1 (Y) = X настолько трудно сделать, что вам лучше попробовать грубую силу A Z такой, что H (Z) = Y

Obfuscation(my opinion) — любая функция f, такая, что f (a) = b, где вы полагаетесь на секретность f. F может быть хэш-функцией, но часть» запутывание » подразумевает безопасность через неясность. Если вы никогда не видели ROT13 раньше, это было бы запутывание

Шифрование — Ek(X) = Y, Dl(Y) = X, где E известен каждому. K и l являются ключами, они могут быть одинаковыми (в симметричном случае они одинаковы). Y-шифрованный текст, X-открытый текст.

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

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

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

Обфускация скрывает или делает что-то более трудным для понимания.

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

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

Обфускация в криптографии-это кодирование входных данных до их хэширования или шифрования.

Это делает атаки с применением грубой силы менее осуществимыми, поскольку становится все труднее определить правильный текст.

Это не плохое описание высокого уровня. Вот некоторые дополнительные соображения:

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

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

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

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

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

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

шифрование двустороннее, и всегда есть какая-то дешифровка, работающая наоборот.

Так что, да, вы в основном правы.

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

Как правило, разница между хешированием и шифрованием заключается в том, что хеширование обычно использует формулу для перевода данных в другую форму, где шифрование использует формулу, требующую ключа(ключей) для шифрования/расшифровки. Примерами могут быть кодирование base 64, являющееся хэш-алгоритмом, где md5 является алгоритмом шифрования. Любой может отменить кэширование данных в кодировке base64, но вы не можете расшифровать зашифрованные данные md5 без ключа.

Хэширование-создание поля проверки для некоторых данных (для определения изменения данных). Это односторонняя функция, и исходные данные не могут быть получены из хэша. Типичные стандарты для этого SHA-1, SHA256 etc.

Obfuscation-измените свои данные / код, чтобы запутать кого-либо еще (без реальной защиты). Это может привести или не привести к потере некоторых исходных данных. Реальных стандартов для этого нет.

Шифрование-использование ключа для преобразования данных так, чтобы только те, у кого есть правильный ключ, могли понять его. Зашифрованные данные могут быть расшифрованы для получения исходных данных. Типичные стандарты DES, TDES, AES, RSA etc.

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

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

Очень наивным и простым хэшем является «первые 3 буквы строки».
Это означает, что хэш » abcdefg «будет»abc». Эта функция, очевидно, не может быть обращена, что является всей целью хэша. Однако обратите внимание, что» abcxyz » будет иметь точно такой же хэш, это называется столкновением . Итак, снова: хэш только доказывает с определенной вероятностью, что два сравниваемых значения одинаковы .

Еще одним очень наивным и простым хэшем является 5-модуль числа, здесь вы увидите, что 6,11,16 и т.д.. все будут иметь один и тот же хэш: 1.

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

в чем отличие кодирования от шифрования

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

Если говорить на очень примитивном уровне, то для кодирования не требуется ключ, да и алгоритм как правило простой — однозначная замена элемента алфавита А на алфавит B. И обратно. Кодирование только симметрично. Шифрование в зависимости от алгоритма может быть как симметричным, так и асимметричным.

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


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

9 ответов

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

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

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

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

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

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

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

Кодировка:

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

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

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

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

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

Шифрование:

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

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

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

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

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

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

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

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

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

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

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

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

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

Кодировка:

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

Примеры: ASCII, Unicode, кодировка URL, Base64

Шифрование:

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

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

Примеры: AES, Blowfish, RSA

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

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

Кроме того, в мире безопасности есть два основных термина: Хеширование и запутывание

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


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

Мастер Йода рекомендует:  MIT объявил об основании Колледжа вычислительных технологий

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

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

Вот мое понимание:

  • Хеширование — это односторонний алгоритм; не может быть отменено
  • Запутывание похоже на шифрование, но не требует никакого «секрета» для понимания (ROT13 — один из примеров)
  • Шифрование обратимо, но для этого требуется «секрет»

11 ответов

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

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

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

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

Это объяснение высокого уровня. Я постараюсь уточнить их:

Хеширование — в идеальном мире это случайный оракул. Для одного и того же входа X вы всегда получаете один и тот же выход Y, т. Е. НИКАКОЙ путь, связанный с X. Это математически невозможно (или, по крайней мере, невозможно доказать, что это возможно). Самое близкое, что мы получаем, это функции люка. H (X) = Y, потому что с H-1 (Y) = X так трудно сделать, что лучше попытаться грубой силой сделать Z такой, что H (Z) = Y

Запутывание (мое мнение) — любая функция f, такая, что f (a) = b, где вы полагаетесь на секретность f. F может быть хеш-функцией, но часть «обфускации» подразумевает безопасность через неизвестность. Если вы никогда не видели ROT13 раньше, это было бы запутывание

Шифрование — Ek (X) = Y, Dl (Y) = X, где E известен всем. k и l — ключи, они могут быть одинаковыми (симметрично, они одинаковы). Y — зашифрованный текст, X — открытый текст.

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

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

Очень наивный и простой хеш — «Первые 3 буквы строки». Это означает, что хешем «abcdefg» будет «abc». Эта функция, очевидно, не может быть отменена, что является целью хэша. Однако обратите внимание, что у «abcxyz» будет точно такой же хеш, это называется коллизией. Итак, еще раз: хэш только с определенной вероятностью доказывает, что два сравниваемых значения одинаковы.

Другой очень наивный и простой хеш — это 5-модуль числа, здесь вы увидите, что 6,11,16 и т.д. Будут иметь одинаковый хеш: 1.

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

Обфускация в криптографии кодирует входные данные перед их хэшированием или шифрованием.

Это делает атаки грубой силой менее осуществимыми, так как становится все труднее определить правильный открытый текст.

Вот как я всегда на это смотрел.

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

Запутывание делает что-то труднее читать по символу замена.

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

Это не плохое описание высокого уровня. Вот некоторые дополнительные соображения:

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

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

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

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

Хеширование — создание поля проверки для некоторых данных (чтобы определить, когда данные изменяются). Это односторонняя функция, и исходные данные не могут быть получены из хеша. Типичными стандартами для этого являются SHA-1, SHA256 и т.д.

Запутывание — измените ваши данные/код, чтобы запутать кого-либо еще (без реальной защиты). Это может или не может потерять некоторые из исходных данных. Для этого нет реальных стандартов.

Шифрование — использование ключа для преобразования данных, чтобы его могли понять только те, у кого правильный ключ. Зашифрованные данные могут быть расшифрованы для получения исходных данных. Типичными стандартами являются DES, TDES, AES, RSA и т.д.

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

Запутывание скрывает или затрудняет понимание чего-либо.

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

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

Хеширование — это односторонняя задача создания одного значения из другого. Алгоритм должен попытаться создать максимально короткое и уникальное значение.

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

шифрование двустороннее, и всегда существует некоторая расшифровка, работающая наоборот.


Так что, да, вы в основном правы.

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

Как правило, разница между хешированием и шифрованием заключается в том, что хеширование обычно использует формулу для перевода данных в другую форму, где для шифрования используется формула, требующая ключ (ы) для шифрования/дешифрования. Примерами могут служить кодирование base 64, являющееся алгоритмом хеширования, где md5 — алгоритм шифрования. Любой может разархивировать данные в кодировке Base64, но вы не можете расшифровать зашифрованные данные MD5 без ключа.

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

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

9 ответов:

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

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

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

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

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

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

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

кодировка:

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

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

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

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

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

безопасность:

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

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

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

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

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

кодирование процесс ввода последовательности символов в специальный формат для передачи или хранения

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

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

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

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

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

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

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

кодировка:

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

примеры: ASCII, Unicode, кодировка URL, Base64

безопасность:

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

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

примеры: AES, Blowfish, RSA

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

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

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

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

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

Добавить комментарий