Инструмент для разработчиков

Base64 кодировщик и декодировщик

Кодируйте и декодируйте данные в Base64 прямо в браузере. Полная поддержка UTF-8, кириллицы, файлов, Base64URL и Data URI. Все операции выполняются локально.

64
Символа алфавита
A-Z, a-z, 0-9, +, / и паддинг =
~33%
Увеличение размера
3 байта входа = 4 символа выхода
RFC 4648
Стандарт
Международный стандарт кодирования
100%
Локально
Данные не покидают ваш браузер

Что такое Base64

Base64 -- это схема кодирования двоичных данных в текстовый формат с использованием 64 печатных ASCII-символов. Стандарт определён в RFC 4648 и используется повсеместно: от электронной почты до JWT-токенов и встроенных ресурсов на веб-страницах.

Aa

Алфавит Base64

Стандартный алфавит включает 26 заглавных букв (A-Z), 26 строчных (a-z), 10 цифр (0-9), а также символы «+» и «/». Символ «=» используется как паддинг для выравнивания длины до кратного 4.

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
%

Почему +33% к размеру

Каждые 3 байта входных данных (24 бита) разбиваются на четыре 6-битных группы. Каждая группа кодируется одним ASCII-символом. Итого: 3 байта входа превращаются в 4 байта выхода, что даёт увеличение примерно на 33%. Это плата за совместимость с текстовыми протоколами.

URL

Base64URL

Вариант, безопасный для URL и имён файлов (RFC 4648, секция 5). Символы «+» и «/» заменены на «-» и «_», паддинг «=» опущен. Используется в JWT-токенах, URL-параметрах, именах файлов и везде, где стандартные символы могут вызвать проблемы.

Где используется Base64

Base64 встречается в веб-разработке, системном администрировании, безопасности и обмене данными между различными системами.

JWT

JWT-токены

JSON Web Tokens кодируют header и payload в Base64URL. Каждый раз, когда пользователь авторизуется через OAuth или API, его токен содержит Base64-закодированные данные о сессии, правах и сроке действия.

IMG

Data URI (встроенные ресурсы)

Изображения, шрифты и SVG можно встраивать прямо в HTML/CSS через data:image/png;base64,... Это устраняет дополнительные HTTP-запросы и ускоряет отображение мелких иконок и спрайтов.

API

REST API и JSON

Двоичные данные (файлы, изображения) передаются в JSON как Base64-строки, поскольку JSON не поддерживает байтовые массивы. Это стандартный подход для загрузки файлов через API.

SSH

Криптография и сертификаты

PEM-формат (-----BEGIN CERTIFICATE-----) -- это Base64-кодировка DER-данных. SSH-ключи, SSL-сертификаты, PGP-подписи -- все хранятся в Base64, чтобы их можно было копировать как текст.

SMTP

Электронная почта (MIME)

Вложения email кодируются в Base64 через Content-Transfer-Encoding. Это позволяет передавать бинарные файлы по протоколу SMTP, который изначально был создан только для 7-битного ASCII-текста.

DB

Хранение в базах данных

Небольшие двоичные объекты (аватары, подписи, превью) иногда хранятся как Base64-строки в текстовых полях БД. Это упрощает работу с данными, хотя и увеличивает объём хранения.

Как работает/ алгоритм кодирования

Алгоритм Base64 преобразует каждые 3 байта входных данных в 4 печатных ASCII-символа. Если длина входных данных не кратна 3, используется паддинг символом «=».

Шаг 1: Получить байты

Исходный текст преобразуется в последовательность байтов (UTF-8). Каждый ASCII-символ -- 1 байт, кириллический символ -- 2 байта.

"Man" → 77 (M), 97 (a), 110 (n) → 01001101 01100001 01101110

Шаг 2: Разбить на 6-битные группы

24 бита (3 байта) разбиваются на четыре группы по 6 бит. Каждая группа представляет число от 0 до 63.

010011 010110 000101 101110 → 19, 22, 5, 46

Шаг 3: Заменить на символы алфавита

Каждое 6-битное число заменяется соответствующим символом из алфавита Base64 (0=A, 1=B, ... 25=Z, 26=a, ... 62=+, 63=/).

19→T, 22→W, 5→F, 46→u → "Man" = "TWFu"

Шаг 4: Паддинг (если нужен)

Если входных байтов не кратно 3, последняя группа дополняется нулями, а в выход добавляются символы «=» (один или два).

"Ma" (2 байта) → "TWE=" (1 паддинг) | "M" (1 байт) → "TQ==" (2 паддинга)

Base64 в разных языках

Большинство языков программирования имеют встроенную поддержку Base64. Вот примеры кодирования и декодирования строки на популярных языках.

JSJavaScript / Node.js

// Encode (UTF-8 safe)
const encoded = btoa(
  unescape(encodeURIComponent(text))
);

// Decode (UTF-8 safe)
const decoded = decodeURIComponent(
  escape(atob(encoded))
);

// Node.js
Buffer.from(text).toString('base64');
Buffer.from(b64, 'base64').toString();

PYPython

import base64

# Encode
encoded = base64.b64encode(
    text.encode('utf-8')
).decode('ascii')

# Decode
decoded = base64.b64decode(
    encoded
).decode('utf-8')

# Base64URL
base64.urlsafe_b64encode(data)

PHPPHP

// Encode
$encoded = base64_encode($text);

// Decode
$decoded = base64_decode($encoded);

// Validate
if (base64_decode($str, true)
    === false) {
    echo "Invalid Base64";
}

SHBash / Linux

# Encode text
echo -n "Hello" | base64
# SGVsbG8=

# Decode
echo "SGVsbG8=" | base64 -d
# Hello

# Encode file
base64 image.png > image.b64

# Decode file
base64 -d image.b64 > image.png

Советы по работе с Base64

Практические рекомендации, которые помогут правильно использовать Base64 в ваших проектах.

1Base64 -- это не шифрование

Base64 не обеспечивает никакой защиты данных. Это обратимое кодирование, а не шифрование. Любой может декодировать Base64 без ключа. Никогда не используйте Base64 для защиты паролей, токенов или конфиденциальной информации.

2Учитывайте увеличение размера

Base64 увеличивает объём данных на 33%. Для встраивания крупных изображений через Data URI это значительный оверхед. Используйте Data URI только для мелких ресурсов (иконки до 5-10 КБ). Для крупных файлов лучше подойдут обычные URL.

3Не забывайте про UTF-8

Функция btoa() в JavaScript работает только с Latin-1 символами. Для кириллицы и других Unicode-символов сначала нужно преобразовать строку в UTF-8 байты через TextEncoder, а затем кодировать в Base64. Наш инструмент делает это автоматически.

4Выбирайте правильный вариант

Для URL-параметров и JWT используйте Base64URL (без +, / и =). Для MIME и email -- стандартный Base64 с переносами строк каждые 76 символов. Для Data URI -- стандартный Base64 без переносов. Неправильный вариант приведёт к ошибкам парсинга.

ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Base64 -- это способ представить двоичные данные (байты) в виде текстовой строки из печатных символов. Он нужен, когда нужно передать бинарные данные по каналу, который поддерживает только текст: email (SMTP), JSON API, URL-параметры, XML, HTML-атрибуты. Без Base64 байты вроде 0x00 или 0xFF были бы потеряны или повреждены при передаче.
Стандартный Base64 использует символы + и /, которые имеют специальное значение в URL (+ это пробел, / -- разделитель пути). Base64URL заменяет их на - и _, а также убирает паддинг =. Это делает строку безопасной для использования в URL, query-параметрах, именах файлов и JWT-токенах.
Нет, Base64 -- это кодирование, а не шифрование. Любой может декодировать Base64-строку без ключа за доли секунды. Это просто способ представления данных, а не защита. Для шифрования используйте AES, RSA или другие криптографические алгоритмы.
Каждые 3 байта входных данных (24 бита) кодируются 4 символами Base64 (по 6 бит на символ). Соотношение 4/3 = 1.333, то есть увеличение на 33%. Плюс паддинг может добавить ещё 1-2 символа. Это неизбежная плата за совместимость с текстовыми протоколами.
Кириллические символы занимают 2 байта в UTF-8, а функция btoa() в JavaScript работает только с однобайтовыми символами. Решение: сначала преобразовать строку в UTF-8 байты через TextEncoder, затем каждый байт -- в символ через String.fromCharCode, и только потом вызвать btoa(). Наш инструмент делает это автоматически.
Data URI -- это способ встроить файл прямо в HTML или CSS как текстовую строку вида data:тип;base64,данные. Пример: data:image/png;base64,iVBOR... Это устраняет HTTP-запрос за ресурсом. Рекомендуется для маленьких файлов (иконки, SVG до 5-10 КБ). Для крупных файлов Data URI неэффективен из-за увеличения размера HTML и невозможности кеширования.
Используйте утилиту base64: echo 'SGVsbG8=' | base64 -d выведет 'Hello'. Для кодирования файла: base64 файл.png > файл.b64. Для декодирования файла: base64 -d файл.b64 > файл.png. На macOS синтаксис аналогичен, но флаг декодирования -D (заглавная).
В JWT-токенах (header и payload закодированы в Base64URL), в Data URI для встроенных изображений и шрифтов, в атрибуте src тега img, в CSS через url(data:...), в HTTP-заголовке Authorization: Basic (логин:пароль в Base64), в WebSocket для передачи бинарных данных, в API для загрузки файлов через JSON.
Наш инструмент полностью безопасен: все операции кодирования и декодирования выполняются локально в вашем браузере на JavaScript. Данные не отправляются на сервер. Вы можете убедиться в этом, открыв инструменты разработчика (F12) и проверив вкладку Network -- никаких запросов к серверу при кодировании/декодировании нет.
Категорически нет. Base64 -- это обратимое кодирование, любой может декодировать пароль обратно. Для хранения паролей используйте хеш-функции: bcrypt, scrypt или Argon2. Эти алгоритмы являются необратимыми и специально спроектированы для безопасного хранения паролей.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

URL Encode/Decode

Кодирование и декодирование URL-параметров онлайн. Поддержка кириллицы, percent-encoding, разбор URL на компоненты.

/url-encode-decode

HTML Entity кодировщик/декодировщик

Конвертация спецсимволов HTML: именованные, числовые и hex-entities. Кодирование и декодирование & < > и других символов.

/html-entity-encoder

Конвертер регистра текста

ВЕРХНИЙ ↔ нижний ↔ Каждое Слово ↔ camelCase ↔ snake_case ↔ kebab-case. Все варианты регистра.

/konverter-registra-teksta

Генератор Cubic Bezier (CSS transition)

Интерактивный генератор кривых Безье для CSS анимаций. Визуальная настройка плавности переходов, пресеты (ease, linear) и копирование кода.

/cubic-bezier

Regex-тестер с русской документацией

Онлайн тестирование регулярных выражений с подсветкой совпадений, захватом групп и русскоязычной документацией. Шпаргалка по синтаксису regex.

/regex-tester-ru

Калькулятор код-ревью: время, размер PR, дефекты, нагрузка

Комплексный калькулятор код-ревью: оценка времени проверки кода, анализ размера PR (XS/S/M/L/XL), покрытие ревью и bus factor, плотность дефектов и escape rate, нагрузка команды ревьюеров, метрики качества (churn, rework, first-pass yield).

/code-review-calculator

Калькулятор теории цвета: гармония, конвертер, палитры, смешивание, дальтонизм

Комплексный инструмент для работы с цветом: цветовые гармонии (комплементарная, аналогичная, триадная, тетрадная), конвертер HEX/RGB/HSL/HSV/CMYK, генератор палитр (монохроматическая, shades, tints, tones), смешивание цветов (аддитивное/субтрактивное), симулятор дальтонизма и анализ цветовой температуры.

/color-theory-calculator

Конвертер кодировок текста

Конвертация текста между кодировками UTF-8, Windows-1251, KOI8-R, CP866. Исправление кракозябр (mojibake) и битой кириллицы онлайн.

/konverter-kodirovok

JWT декодер

Декодирование и анализ JWT-токенов онлайн. Просмотр header, payload и signature с русскоязычными пояснениями. Проверка срока действия токена.

/jwt-decoder

Markdown-редактор с превью

Онлайн Markdown-редактор с мгновенным предпросмотром HTML. Панель инструментов, подсветка синтаксиса, экспорт в HTML.

/markdown-editor

Счётчик символов и слов

Подсчёт символов, слов, предложений, абзацев. Время чтения, частота слов, проверка длины SEO-тегов.

/schyotchik-simvolov-slov

Калькулятор времени чтения текста

Расчёт времени чтения и озвучивания текста. Настройка скорости, тип контента, количество страниц A4.

/vremya-chteniya-teksta

Удалитель дублирующих строк

Удаление повторяющихся строк из списка. Поиск уникальных, показ только дубликатов, настройки сравнения.

/udalenie-dublikatov-strok

Сортировщик строк

Алфавитная, числовая, по длине и случайная сортировка списка строк. Удаление пустых строк и дубликатов.

/sortirovshchik-strok

Конвертер кириллица ↔ латиница (раскладка)

Исправление текста, набранного в неправильной раскладке. QWERTY ↔ ЙЦУКЕН с автоопределением.

/konverter-raskladki