Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

Декодированный текст
M
Декодированные байты 1
Входные символы (без пробелов) 4
Символы заполнения 2

Что такое декодер Base64?

Base64 — это способ кодирования, при котором двоичные данные представляются с помощью 64 печатных ASCII-символов (A–Z, a–z, 0–9, а также + и /). Его широко применяют для встраивания изображений прямо в HTML, передачи данных в JSON и URL, а также для кодирования вложений электронной почты. Этот декодер выполняет обратную операцию: превращает строку Base64 в исходный обычный текст, который в ней зашифрован.

Как пользоваться

Вставьте или введите строку Base64 в поле ввода и нажмите «Отправить». Инструмент удалит все пробелы, декодирует символы и покажет полученный текст, а вместе с ним — количество декодированных байтов, число входных символов и сколько символов заполнения ('=') присутствовало в строке. Если во вводе встретятся символы, не входящие в алфавит Base64, вы увидите сообщение о том, что строка некорректна.

Как устроена формула

Каждый символ Base64 кодирует 6 бит данных. Значит, четыре символа Base64 несут \(4 \times 6 = 24\) бита, которые аккуратно складываются в три байта по 8 бит. Когда длина исходных данных не кратна 3, в конец добавляют один или два символа заполнения '=', чтобы длина закодированной строки всегда была кратна 4. При декодировании заполнение отбрасывается, а лишние биты не используются.

$$\text{Bytes} = \left\lfloor \frac{6 \times \text{Base64 chars (no padding)}}{8} \right\rfloor$$$$\begin{gathered} \text{Bytes} = \left\lfloor \frac{6N}{8} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} N &= \text{valid chars of } \text{Base64 Input} \\ &\quad \text{(whitespace and } = \text{ removed)} \\ \text{char} &\to 6\text{ bits},\; 8\text{ bits} \to 1\text{ byte} \end{aligned} \right. \end{gathered}$$
Четыре символа Base64 по 6 бит, перегруппированные в три 8-битных байта
Четыре символа Base64 несут 24 бита, которые перегруппируются в три декодированных байта.

Разбор на примере

Возьмём строку Base64 SGk=. Символам соответствуют значения S=18, G=6, k=36, а '=' — это заполнение. В двоичном виде: \(010010\ 000110\ 100100\) → 24 бита, но из-за завершающего заполнения корректными остаются только 2 байта: \(01001000\) (72 = 'H') и \(01101001\) (105 = 'i'). Результат — Hi.

Схема преобразования строки Base64 через биты в обычный текст
Декодер превращает строку Base64 обратно в исходный обычный текст.

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

Передаются ли мои данные куда-либо? Логика декодирования выполняется на стороне сервера, чтобы показать результат, но никакие введённые данные не сохраняются. Не вставляйте сюда конфиденциальную информацию.

Почему количество байтов не делится на 4? Количество байтов относится к декодированным выходным данным, а не к входным символам. Каждые 4 входных символа превращаются максимум в 3 выходных байта.

Что означает заполнение? Один знак '=' указывает, что последняя группа дала 2 байта; два знака '=' — что она дала 1 байт. Отсутствие заполнения означает, что длина данных и так была кратна 3.

Справочник по алфавиту Base64

Standard Base64 (RFC 4648) отображает каждое 6-битное значение (0–63) в один из 64 печатных символов ASCII. Декодер читает каждый символ, ищет его 6-битный индекс в этой таблице, объединяет биты и перегруппирует их в 8-битные байты. В таблице ниже приведён полный алфавит и индекс, присвоенный каждому символу.

Индекс Символ Индекс Символ Индекс Символ Индекс Символ
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

65-й символ, = (равно), не является символом данных. Это дополняющий маркер, используемый в конце закодированной строки, чтобы общая длина была кратна 4 символам. Один = означает, что финальная группа из 4 символов кодирует 2 байта; два == означают, что она кодирует 1 байт. Декодер отбрасывает дополнение и дополнительные нулевые биты, которые оно предполагает.

Дополнительные примеры декодирования

Каждый символ Base64 вносит 6 битов. Четыре символа (24 бита) декодируются ровно в 3 байта; неполные группы используют дополнение, чтобы декодер знал, сколько байтов сохранить. Количество байтов следует формуле \(\text{Байты} = \left\lfloor \frac{6 \times n}{8} \right\rfloor\), где \(n\) — количество реальных (недополняющих) символов.

Пример 1 — Без дополнения: "TWFu" → "Man"

  1. Индексы: T=19, W=22, F=5, u=46.
  2. 6-битные группы: 010011 010110 000101 101110.
  3. Перегруппировка в байты: 01001101 01100001 01101110 = 77, 97, 110.
  4. ASCII 77, 97, 110 = M, a, n. При \(n=4\): \(\lfloor 24/8 \rfloor = 3\) байта — Man.

Пример 2 — Одно дополнение '=': "SGVsbG8=" → "Hello"

  1. Отбросить дополнение: 7 реальных символов S,G,V,s,b,G,8.
  2. Индексы: S=18, G=6, V=21, s=44, b=27, G=6, 8=60.
  3. Биты: 010010 000110 010101 101100 011011 000110 111100 (последние 2 бита из дополняющей группы — нулевое заполнение и отбрасываются).
  4. Байты: 01001000 01100101 01101100 01101100 01101111 = 72, 101, 108, 108, 111 = H, e, l, l, o.
  5. При \(n=7\): \(\lfloor 42/8 \rfloor = 5\) байтов — Hello.

Пример 3 — Два дополнения '==': "aGk="... и "TQ==" → "M"

  1. Отбросить дополнение: 2 реальных символа T, Q.
  2. Индексы: T=19, Q=16.
  3. Биты: 010011 010000; сохранить только первые 8 битов, остальные 4 — нулевое заполнение.
  4. Байт: 01001101 = 77 = M.
  5. При \(n=2\): \(\lfloor 12/8 \rfloor = 1\) байт — M.

Чтобы сделать обратное и произвести эти строки из текста, используйте Кодировщик Base64.

Ключевые термины

Алфавит Base64
Фиксированный набор из 64 печатных символов (A–Z, a–z, 0–9, + и /), используемых для представления бинарных данных как текста. Каждый символ представляет 6-битное значение от 0 до 63.
Дополнение ('=')
Знак равенства, добавленный в конец закодированной строки, чтобы её длина была кратна 4 символам. Он не несёт данные; один '=' отмечает финальную группу из 2 байтов, а '==' — финальную группу из 1 байта.
Секстет (6 битов)
Группа из 6 битов — единица, которую кодирует один символ Base64. Четыре секстета (24 бита) ровно совпадают с тремя октетами.
Октет / байт (8 битов)
8-битная единица, стандартный размер одного байта декодированных данных. Декодирование Base64 перегруппирует секстеты обратно в октеты, что может также продемонстрировать конвертер двоичного в текст бит за битом.
Удаление пробелов
Удаление пробелов, табуляций и разрывов строк перед декодированием. Многие системы вставляют разрывы строк в длинный Base64 (например, сертификаты PEM, электронная почта MIME); надёжный декодер игнорирует этот пробел вместо того, чтобы обрабатывать его как данные.
URL-безопасный Base64
Вариант (RFC 4648 §5), который заменяет + на - и / на _, чтобы строка была безопасна в URL и именах файлов. Дополнение часто также опускается. Преобразуйте такие символы обратно в + и / перед использованием стандартного декодера; для самого окружающего URL см. Калькулятор кодирования/декодирования URL.
Последнее обновление: