mikaio.dev

Base64 Encoder / Decoder

Enter text or Base64 and click Encode or Decode.

Кодируйте и декодируйте 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.