Base64 в одном предложении
Base64 — это способ кодирования двоичных данных в текст, описанный в RFC 4648: каждые 3 байта данных записываются 4 символами из алфавита A–Z, a–z, 0–9, + и /.
Зачем нужен Base64
Многие системы изначально рассчитаны только на текст: электронная почта (SMTP), JSON, XML, HTML-атрибуты, URL и терминалы. «Сырые» двоичные данные, например изображения или PDF, могут содержать байты, которые такие системы изменят или отвергнут. Base64 превращает данные в безопасные печатные символы, и они доходят до адресата без искажений.
Как работает кодирование Base64: пошагово
- Возьмите исходные байты:
M,a,n= 77, 97, 110. - Запишите их в виде 24 бит:
01001101 01100001 01101110. - Разбейте биты на четыре группы по 6 бит:
010011 010110 000101 101110= 19, 22, 5, 46. - Найдите каждое число в алфавите: 19 =
T, 22 =W, 5 =F, 46 =u.
Так Man превращается в TWFu. Декодирование — это те же шаги в обратном порядке.
Алфавит Base64
| Значения | Символы |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + (URL-safe: -) |
| 63 | / (URL-safe: _) |
| дополнение | = |
Что означает дополнение =
Если длина входных данных не кратна 3, последняя группа дополняется и помечается знаком =: Ma превращается в TWE=, а M — в TQ==. В середине корректной строки знак дополнения не встречается никогда.
Разновидности Base64
- Стандартный Base64 (RFC 4648) — алфавит из таблицы выше с дополнением
=. - Base64URL — использует
-и_, часто без дополнения; применяется в URL, именах файлов и JWT. - MIME Base64 — стандартный алфавит с переносом строки каждые 76 символов; используется в электронной почте.
Base64 — это не шифрование
Base64 ничего не скрывает: любой может мгновенно его декодировать. Его часто принимают за защиту, потому что результат выглядит как случайный набор символов. Для секретов используйте настоящее шифрование, например AES, а Base64 — только для передачи зашифрованных байтов в виде текста.
Насколько увеличивается размер
Длина закодированных данных — 4 × ⌈n / 3⌉ символов для n байт, то есть примерно на 33% больше исходного размера. С переносами строк MIME она увеличивается ещё на 2–3%.
Где используется Base64
- Вложения электронной почты (MIME)
- Data URI для изображений и шрифтов в HTML и CSS
- Двоичные поля в JSON- и XML-API
- JSON Web Token и OAuth
- Заголовки HTTP-аутентификации Basic
- PEM-сертификаты и SSH-ключи
- Секреты Kubernetes и конфигурационные файлы
Часто задаваемые вопросы
Base64 — это то же самое, что шифрование или хеширование?
Нет. Чтобы расшифровать данные, нужен ключ, хеширование вообще необратимо, а Base64 может декодировать кто угодно.
Почему он называется Base64?
Потому что в нём используется алфавит из 64 символов и каждый символ несёт 6 бит информации (26 = 64).
Как понять, что строка закодирована в Base64?
Она содержит только A–Z, a–z, 0–9, +, / (или - и _), её длина обычно кратна 4, а в конце может стоять один или два знака =. Самый быстрый способ проверить — вставить её в наш декодер.
Обновлено: