Base64 кодировщик
и декодировщик
Что такое Base64
Base64 -- это схема кодирования двоичных данных в текстовый формат с использованием 64 печатных ASCII-символов. Стандарт определён в RFC 4648 и используется повсеместно: от электронной почты до JWT-токенов и встроенных ресурсов на веб-страницах.
Алфавит Base64
Стандартный алфавит включает 26 заглавных букв (A-Z), 26 строчных (a-z), 10 цифр (0-9), а также символы «+» и «/». Символ «=» используется как паддинг для выравнивания длины до кратного 4.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/Почему +33% к размеру
Каждые 3 байта входных данных (24 бита) разбиваются на четыре 6-битных группы. Каждая группа кодируется одним ASCII-символом. Итого: 3 байта входа превращаются в 4 байта выхода, что даёт увеличение примерно на 33%. Это плата за совместимость с текстовыми протоколами.
Base64URL
Вариант, безопасный для URL и имён файлов (RFC 4648, секция 5). Символы «+» и «/» заменены на «-» и «_», паддинг «=» опущен. Используется в JWT-токенах, URL-параметрах, именах файлов и везде, где стандартные символы могут вызвать проблемы.
Где используется Base64
Base64 встречается в веб-разработке, системном администрировании, безопасности и обмене данными между различными системами.
JWT-токены
JSON Web Tokens кодируют header и payload в Base64URL. Каждый раз, когда пользователь авторизуется через OAuth или API, его токен содержит Base64-закодированные данные о сессии, правах и сроке действия.
Data URI (встроенные ресурсы)
Изображения, шрифты и SVG можно встраивать прямо в HTML/CSS через data:image/png;base64,... Это устраняет дополнительные HTTP-запросы и ускоряет отображение мелких иконок и спрайтов.
REST API и JSON
Двоичные данные (файлы, изображения) передаются в JSON как Base64-строки, поскольку JSON не поддерживает байтовые массивы. Это стандартный подход для загрузки файлов через API.
Криптография и сертификаты
PEM-формат (-----BEGIN CERTIFICATE-----) -- это Base64-кодировка DER-данных. SSH-ключи, SSL-сертификаты, PGP-подписи -- все хранятся в Base64, чтобы их можно было копировать как текст.
Электронная почта (MIME)
Вложения email кодируются в Base64 через Content-Transfer-Encoding. Это позволяет передавать бинарные файлы по протоколу SMTP, который изначально был создан только для 7-битного ASCII-текста.
Хранение в базах данных
Небольшие двоичные объекты (аватары, подписи, превью) иногда хранятся как 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 без переносов. Неправильный вариант приведёт к ошибкам парсинга.
Часто задаваемые вопросы
Связанные расчёты
Другие инструменты для разработчиков, которые могут быть вам полезны.
Был ли этот калькулятор полезен?
Инструмент справочный — не заменяет эксперта
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.
Похожие калькуляторы
HTML entities — кодер и таблица
Экранирование HTML: < & ". 3 режима кодирования + таблица 50+ символов с именованными, dec и hex.
/html-entities-koder-tablicaSEO slug генератор
Превращает русский заголовок в URL-friendly slug. 5 схем транслитерации (SEO, ГОСТ, ICAO, BGN, Yandex).
/seo-slug-generator-iz-russkogoMarkdown таблица — конструктор
Визуальный конструктор Markdown / HTML / CSV таблиц. Выравнивание, до 10×50 ячеек.
/generator-tablic-markdown-onlineURL Encode/Decode
Кодирование и декодирование URL-параметров онлайн. Поддержка кириллицы, percent-encoding, разбор URL на компоненты.
/url-encode-decodeHTML Entity кодировщик/декодировщик
Конвертация спецсимволов HTML: именованные, числовые и hex-entities. Кодирование и декодирование & < > и других символов.
/html-entity-encoderОбъединить PDF онлайн — без загрузки на сервер
Склейка PDF в браузере через pdf-lib. До 20 файлов, до 50 МБ каждый. Локально, без отправки на сервер (152-ФЗ).
/obyedinit-pdf-onlajn-besplatnoСжать PDF онлайн — уменьшить размер локально
Сжатие PDF в браузере без потери качества. 3 уровня (object streams, удаление метаданных). До 50 МБ. Через pdf-lib, локально.
/szhat-pdf-onlajn-umenshit-razmerРазделить PDF на страницы — извлечь нужные онлайн
Разделение PDF на страницы локально: каждая страница отдельным файлом, диапазон или группами. Через pdf-lib, без отправки на сервер.
/razdelit-pdf-na-stranicy-onlajnJPG в PDF — конвертер с объединением
Конвертация JPG/PNG в PDF в браузере: до 30 картинок в один документ. Форматы A4/A3/Letter или подгонка под изображение.
/jpg-v-pdf-konverterПовернуть страницы PDF онлайн
Поворот всех или указанных страниц PDF на 90/180/270° за миллисекунды. Lossless. Через pdf-lib, без отправки на сервер.
/povernut-pdf-stranitsy-onlajnВодяной знак на PDF онлайн (кириллица)
Нанесение текстового знака («КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК») на все страницы PDF. Поддержка русского текста через Canvas. 4 положения, регулировка прозрачности.
/dobavit-vodyanoj-znak-na-pdfНумерация страниц PDF онлайн
Проставьте номера страниц PDF в браузере: 4 формата, 6 положений, пропуск титульной, кастомный старт. Поддержка кириллицы. Через pdf-lib + Canvas.
/numerovat-stranitsy-pdf-onlajnPDF в JPG / PNG — конвертер страниц
Рендеринг каждой страницы PDF в картинку через pdfjs-dist (Mozilla). 4 уровня качества: 96 / 150 / 300 DPI и lossless PNG. До 50 МБ.
/pdf-v-jpg-konverter-onlajnИзвлечь текст из PDF онлайн
Извлечение текста из PDF в браузере через pdfjs-dist (Mozilla). Plain text, с разделителями страниц или JSON. Файлы не уходят на сервер.
/extract-text-iz-pdf-onlajnСжать JPG до 100 КБ для документов
Сжатие JPG до точного размера в КБ (50, 100, 200, 500, 1000) через бинарный поиск quality. Госуслуги, ЕГЭ, банки. Через browser-image-compression.
/szhat-jpg-onlajn-do-100kb