Кодируйте и декодируйте Base64 мгновенно
Base64 — фундаментальная схема кодирования, которая используется буквально повсюду в вычислительной технике для безопасного представления двоичных данных в виде текста. Работаете ли вы с API, отлаживаете сетевые запросы, разбираетесь в устройстве JWT-токенов или встраиваете изображения прямо в HTML — Base64 встречается на каждом шагу. Этот инструмент кодирует любой текст в Base64 и декодирует любую строку Base64 обратно в текст одним нажатием.
Что такое Base64
Base64 — это схема кодирования "двоичное в текст", которая представляет двоичные данные, используя всего 64 печатных ASCII-символа: 26 заглавных латинских букв (A–Z), 26 строчных букв (a–z), 10 цифр (0–9), а также символы + и /. 65-й символ, =, используется для выравнивания (паддинга).
Название "Base64" происходит от того, что кодировка использует 64 различных символа. Каждый символ Base64 представляет 6 бит данных (2^6 = 64). Поскольку байт — это 8 бит, каждые 3 байта исходных данных превращаются ровно в 4 символа Base64.
Зачем нужен Base64
Многие старые текстовые протоколы и системы способны работать только с ASCII-текстом, а не с произвольными двоичными байтами. Электронная почта (SMTP), URL-адреса, заголовки HTTP и XML безопасно обрабатывают именно текст. А вот двоичные данные — изображения, аудиофайлы, криптографические ключи или сжатые архивы — нельзя безопасно передать через эти каналы без предварительного кодирования.
Base64 решает эту проблему, переводя любые двоичные данные в подмножество ASCII-символов, которое любая текстовая система может безопасно хранить и передавать.
Где встречается Base64
Data URI: изображения можно встроить прямо в HTML или CSS без отдельного запроса файла. Data URI начинается с data:image/png;base64,, за которым следуют закодированные в Base64 данные изображения.
Вложения в письмах (MIME): вложения электронной почты кодируются в Base64 для передачи по протоколу MIME.
JSON-API: двоичные данные (изображения, файлы, криптографические подписи), передаваемые в формате JSON, обязательно кодируются в Base64, поскольку JSON — это чисто текстовый формат.
HTTP Basic Authentication: заголовок Authorization передаёт учётные данные в виде Base64(логин:пароль). Само по себе это не защита — HTTPS всё равно обязателен.
JWT-токены: JSON Web Token состоит из трёх частей, закодированных в Base64URL (заголовок, полезная нагрузка, подпись), разделённых точками.
Хранение в базах данных: двоичные объекты, хранящиеся в текстовых форматах (например, в некоторых NoSQL-базах или конфигурационных файлах), часто кодируются в Base64.
Base64 против Base64URL
Стандартный Base64 использует символы + и /, которые в URL имеют особое значение. Base64URL заменяет их на - и _, чтобы закодированные данные можно было безопасно использовать в URL. JWT-токены используют именно Base64URL. Символ выравнивания = в Base64URL также нередко просто опускается.
Важное замечание о безопасности
Base64 — это НЕ шифрование. Любой, кто получит данные, закодированные в Base64, может немедленно декодировать их с помощью любого доступного декодера. Не используйте Base64, чтобы "спрятать" конфиденциальную информацию, — для этого нужно настоящее шифрование.
Как пользоваться инструментом
Вставьте текст в поле кодирования, чтобы сразу же получить его представление в Base64, либо вставьте строку Base64 в поле декодирования, чтобы восстановить исходный текст, — оба направления работают в реальном времени по мере набора. Это удобно, когда нужно быстро заглянуть внутрь полезной нагрузки JWT-токена, проверить, что на самом деле содержится в data URI, или подготовить значение, которому предстоит безопасно пройти через канал, работающий только с текстом, — например, параметр URL или поле в JSON.
Как работает кодирование Base64 пошагово
Base64 переводит двоичные данные в текст через простую последовательность шагов. Сначала двоичные данные группируются в блоки по 3 байта, то есть по 24 бита. Каждый 24-битный блок делится на четыре группы по 6 бит. Каждое 6-битное значение, лежащее в диапазоне от 0 до 63, ищется в алфавите Base64, где A=0, B=1 и так далее до Z=25, затем a=26 до z=51, 0=52 до 9=61, +=62 и /=63. Если исходные данные не кратны ровно 3 байтам, в конец добавляются символы выравнивания =, чтобы дополнить последнюю группу. Поскольку 3 байта превращаются в 4 символа Base64, кодирование увеличивает размер данных примерно на 33% — двоичный файл размером 1 МБ после кодирования в Base64 занимает примерно 1,37 МБ в виде текста.
Data URI и встроенные изображения
Одно из самых заметных применений Base64 в вебе — это data URI, позволяющий встроить файл прямо в HTML или CSS вместо того, чтобы ссылаться на него как на отдельный файл, в форме вроде data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA.... Это избавляет от отдельного HTTP-запроса за ресурсом, что может ускорить загрузку страницы с мелкими иконками и изображениями. Однако данные в Base64 нельзя кэшировать отдельно от страницы, в которую они встроены, а накладные расходы в те самые 33% делают этот приём неэффективным для крупных изображений — поэтому его обычно приберегают для небольших элементов оформления.
JWT-токены и Base64URL
JSON Web Token использует вариант под названием Base64URL, который заменяет символы + и /, имеющие особый смысл внутри URL, на - и _ соответственно, и, как правило, вовсе опускает выравнивание символом =. JWT-токен выглядит как три раздела, разделённых точками, — заголовок, полезная нагрузка и подпись, — каждый из которых представляет собой блок данных, закодированный в Base64URL. Именно поэтому JWT-токен можно спокойно вставить прямо в URL или HTTP-заголовок без дополнительного экранирования.
Base64 в электронной почте
Стандарт MIME для электронной почты определяет, как кодировать тело письма и вложения для передачи. Текстовый контент обычно использует другую схему — так называемое кодирование quoted-printable, — а двоичные вложения кодируются в Base64. Когда вы прикрепляете PDF-файл к письму, ваш почтовый клиент кодирует его в Base64 перед отправкой, а клиент получателя автоматически декодирует его обратно в исходный файл — всё это происходит незаметно для обеих сторон.
Приватно и мгновенно
Кодирование и декодирование выполняются полностью в вашем браузере с помощью встроенных функций btoa и atob, поэтому результат появляется мгновенно, а любые данные, которые вы кодируете или декодируете, никуда не отправляются.
Base64 FAQ
- What is Base64?
- Base64 is an encoding scheme that converts binary data into ASCII text using 64 characters (A-Z, a-z, 0-9, +, /). It is used to safely transmit binary data through text-only channels like email or JSON.
- Is Base64 encryption?
- No. Base64 is an encoding, not encryption. Anyone can decode a Base64 string instantly. Do not use it to hide sensitive data.
- What is Base64 used for?
- Embedding images in HTML/CSS (data URIs), encoding email attachments (MIME), storing binary data in JSON, transmitting credentials in HTTP Basic Authentication, and encoding binary data in URLs.