Какова цель кодирования базы 64 и почему она используется в базовой аутентификации HTTP?

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

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

Почему он используется для HTTP Basic auth?

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

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

Ответ 1

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

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

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

Ответ 2

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

Ответ 5

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

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

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

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

Ответ 6

Кодирование 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.

Ответ 7

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

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