Глоссарий

Base64

кодирование Base64

Base64 — двоично-текстовое кодирование, которое представляет байты с помощью алфавита из 64 символов.

Определение

Base64 — способ представить произвольные байты текстом для передачи через системы, рассчитанные на текстовые данные. Стандартный алфавит содержит латинские буквы в верхнем и нижнем регистре, цифры, + и /; в конце может стоять заполнитель =.

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

Как это работает

Кодировщик берёт 3 байта, делит их 24 бита на четыре 6-битных значения и заменяет каждое одним из 64 символов. Если в последней группе только 1 или 2 байта, недостающую часть обычно отмечают знаком =, чтобы длина результата была кратна четырём.

Для больших объёмов результат примерно на треть длиннее исходных байтов. В Base64url символы + и / заменены на - и _, а заполнение часто опускают, поэтому варианты не всегда взаимозаменяемы.

Практический пример

Строке Hi в ASCII и UTF-8 соответствуют байты 48 69 в шестнадцатеричной записи. В стандартном Base64 они выглядят как SGk=. Декодирование вернёт те же байты, а их интерпретация как UTF-8 — текст Hi.

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

Форматы и частые ошибки

Системы должны одинаково понимать вариант Base64, обязательность заполнения и допустимость пробельных символов. Один декодер может отклонить строку, которую принимает другой. Перед кодированием текста его переводят в байты с помощью кодировки символов, например UTF-8; другая кодировка даст другой результат.

Частые вопросы

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

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

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

См. также
Связанные инструменты
Связанные термины