mikaio.dev/freetools

Кодер/декодер Base64

Введите текст или Base64 и нажмите «Кодировать» или «Декодировать».

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

Что такое Base64?
Base64 — это схема кодирования, которая преобразует двоичные данные в текст ASCII с использованием 64 символов (A-Z, a-z, 0-9, +, /). Он используется для безопасной передачи двоичных данных через текстовые каналы, такие как электронная почта или JSON.
Шифрование Base64?
Нет. Base64 — это кодировка, а не шифрование. Любой может мгновенно декодировать строку Base64. Не используйте его для сокрытия конфиденциальных данных.
Для чего используется Base64?
Встраивание изображений в HTML/CSS (URI данных), кодирование вложений электронной почты (MIME), хранение двоичных данных в JSON, передача учетных данных при базовой аутентификации HTTP и кодирование двоичных данных в URL-адресах.