Какова цель кодировки base 64 и почему она используется в HTTP Basic Authentication? - PullRequest
123 голосов
/ 01 ноября 2010

Я не получаю шифрование Base64.

Если можно расшифровать строку Base64, для чего она нужна?

Почему она используется для аутентификации HTTP Basic?

Это все равно, что сказать кому-то, что мой пароль изменен на OLLEH.

Люди, увидевшие OLLEH, узнают, что исходный пароль был HELLO.

Ответы [ 7 ]

238 голосов
/ 01 ноября 2010

Base64 - это не шифрование, это кодировка. Это способ представления двоичных данных с использованием только печатных (текстовых) символов.

См. Этот абзац со страницы в Википедии для базовой аутентификации HTTP :

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

55 голосов
/ 01 ноября 2010

Обычно это называется base64 кодировкой, , а не шифрованием! Хорошая вещь в кодировке base64 заключается в том, что она позволяет вам представлять (двоичные) данные, используя только ограниченное общее подмножество доступных символов, гораздо эффективнее, чем просто записать строку из 1 и 0 в качестве ASCII, например.

29 голосов
/ 01 ноября 2010

Ru crypt ion требует ключ (строку или алгоритм) для расшифровки;следовательно "crypt" (root: cryptography )

En cod ing изменяет / перемещает / изменяет символкод в другое.В этом случае обычные байты данных теперь могут быть легко представлены и перенесены с использованием HTTP.

18 голосов
/ 01 ноября 2010

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

Этот код может быть секретным. В этом случае это называется шифрованием. Но в целом код не является секретом. Возьми генетический код. В нем просто говорится, что наша ДНК состоит из четырех различных оснований - A, C, G и T, и что три основания, взятые вместе, образуют одну аминокислоту. Есть также таблица, в которой три буквы образуют, какую аминокислоту.

В этом коде нет ничего секретного.

Аналогично, Base64 не является секретным кодом. Скорее, это код, который позволяет хранить данные в шести битах на символ (таким образом, существует 64 различных объекта, то есть «основа» системы равна 64, так же как основа нашей десятичной системы равна 10, поскольку существует 10 различных объектов называемые «цифры»).

18 голосов
/ 01 ноября 2010

Возможно, вы имеете в виду «Кодировка Base 64». Шифрование - это не то же самое, что шифрование.

Википедия: Шифрование

17 голосов
/ 01 ноября 2010

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

Существует множество различных хостов на каналах, и вы не можете предполагать поддержку чего-либо, кроме 7-битного ASCII, без риска потери данных / путаницы.

В мэйнфреймах IBM, например, используется кодировка, называемая EBCDIC (которая имеет множество разновидностей). Его кодовые точки полностью отличаются от кодовых точек, используемых ASCII-путтерами - в ASCII буквы A-Z равны 0x41 - 0x5A; в EBCDIC буквы A - Z даже не являются непрерывным диапазоном: буквы A-I живут в 0xC1 - 0xC9, буквы J-R живут в 0xD1 - 0xD9, а буквы S-Z живут в 0xE2 - 0xE9.

0 голосов
/ 27 июня 2019

По умолчанию параметры поля заголовка сообщения в сообщениях протокола передачи гипертекста (HTTP) не могут содержать символы вне набора символов ISO-8859-1.

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

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