Base64 — кодирование и декодирование
Переводит текст в Base64 и обратно. Кириллица обрабатывается корректно через UTF-8, поэтому «кракозябр» не будет.
Ввод
0 символовРезультат
0 символовКак три байта превращаются в четыре знака
Инструмент переводит текст в Base64 и обратно. Кириллица проходит через UTF-8, поэтому «кракозябр» не будет: браузерная функция btoa на русских буквах спотыкается, здесь текст сначала превращается в байты. Есть построчный режим, когда каждая строка списка кодируется отдельно, и алфавит URL-safe, в котором «+» заменён на «-», а «/» на «_». Нужен всем, кто разбирает конфиги, токены и письма: строка вида eyJhbGciOi… встречается в заголовках авторизации, в JWT, в data:URI и в сертификатах.
Устроено просто: три байта исходных данных превращаются в четыре знака из 64-символьного алфавита A–Z, a–z, 0–9, «+», «/». Каждый знак несёт шесть бит, поэтому объём растёт примерно на треть. Если байтов не хватает до тройки, хвост добивается знаком «=»: один лишний байт даёт два таких знака, два лишних — один. «Привет, мир!» занимает 21 байт UTF-8, ровно семь троек, и превращается в 28 знаков без единого «=». Обратное преобразование восстанавливает байты точно, поэтому Base64 годится для передачи, но не для защиты: строка разворачивается назад одним нажатием.

| Что кодируем | Байтов | Base64 | Что произошло |
|---|---|---|---|
| Man | 3 | TWFu | Ровно одна тройка байтов даёт четыре знака без добивки. |
| A | 1 | QQ== | Хвост в один байт добивается двумя знаками «=». |
| Ab | 2 | QWI= | Хвост в два байта добивается одним «=». |
| я | 2 | 0Y8= | Кириллическая буква — это два байта UTF-8, D1 8F. |
| Привет, мир! | 21 | 0J/RgNC40LLQtdGCLCDQvNC40YAh | 21 байт делится на 3 нацело, добивка не нужна. |
| Привет, мир! в URL-safe | 21 | 0J_RgNC40LLQtdGCLCDQvNC40YAh | Знак «/» заменён на «_», чтобы строку можно было положить в адрес. |
История: от uuencode до data:URI
Base64 родился из ограничений каналов связи. Почта, телетайп и файловые обменники семидесятых понимали только печатные знаки семибитного ASCII: восьмой бит по дороге могли обнулить, управляющие коды — съесть, а перевод строки в каждой системе записывался по-своему. Двоичный файл через такой канал не проходил. В 1980 году Мэри Энн Хортон написала для юниксовой почты uuencode, который перекладывал байты в печатные знаки; на «Макинтошах» ту же работу делал BinHex, в файловых конференциях ходил XXencode. Каждый формат жил своей жизнью, и письмо из одной сети в другую часто приходило мусором.
Общий формат появился с шифрованной почтой: в феврале 1993 года RFC 1421 описал кодирование печатными знаками для стандарта PEM и разбивку по 64 знака в строке. Настоящую массовость дал MIME — набор правил, по которым в письмо кладут вложения и не-латинский текст: RFC 2045 в ноябре 1996 года назвал способ Base64 и закрепил алфавит вместе с длиной строки в 76 знаков. В 2006 году RFC 4648 свёл разошедшиеся варианты в один документ и описал алфавит для адресов, где «+» и «/» заменены на «-» и «_».
Сегодня Base64 держит куда больше, чем вложения. В data:URI им встраивают картинки и шрифты прямо в разметку и стили; в HTTP им кодируется пара «логин:пароль» в базовой авторизации; из трёх частей в этом виде состоит токен JWT; ключи и сертификаты хранятся в PEM-файлах между строками с дефисами. Отсюда и главная путаница: строку принимают за шифр. Ключа здесь нет, любой декодер вернёт исходный текст, поэтому пароли в конфигах, «спрятанные» таким способом, не спрятаны.
Как кодировать список и что делать с ошибкой
Вставьте текст слева, выберите направление и нажмите преобразование. Построчный режим включайте для списков: каждая строка обработается отдельно, порядок сохранится, и одна битая строка не испортит остальные — она будет помечена. URL-safe нужен, когда результат пойдёт в адрес страницы или в имя файла: обычный алфавит содержит «/» и «+», которые в адресе означают другое. Данные остаются в браузере и никуда не отправляются.
Частые ошибки простые. Длина корректной строки кратна четырём, поэтому обрезанный при копировании хвост декодер не примет. Пробелы и переносы внутри строки появляются из писем и конфигов, где Base64 разбит на строки по 76 знаков; перед разбором их убирают. Строка из другого алфавита с «-» и «_» декодируется только в режиме URL-safe. Картинку в data:URI удобнее готовить в инструменте картинка в Base64, а знаки процента в адресах разбирает URL энкодер и декодер.
| Алфавит | A–Z, a–z, 0–9, «+», «/» |
| Байтов на четыре знака | 3 |
| Рост объёма | ≈ 33 % |
| Знак «=» | добивка хвоста |
| URL-safe | «-» и «_» |
| Первое описание | RFC 1421, 1993 |
| MIME | RFC 2045, 1996 |
| Длина строки в письме | 76 знаков |
Есть построчный режим — каждая строка кодируется отдельно.
Пример: вход → результат
Привет, мир!
0J/RgNC40LLQtdGCLCDQvNC40YAh
Кодирование в обе стороны: текст ↔ Base64. Работает с кириллицей (UTF-8), не ломает спецсимволы.
Когда пригодится
- Передать данные в URL или JSON без спецсимволов
- Раскодировать строку из конфига или токена
- Встроить картинку как data:URI
Как пользоваться
- «Кодировать» — обычный текст в Base64, «Декодировать» — строку Base64 обратно в текст.
- Слева вставьте текст. Включите «построчно», если нужно обрабатывать каждую строку как отдельное значение.
- Справа появится результат. Скопируйте его кнопкой.
Частые вопросы
Корректно ли кодируется кириллица?
Да. Текст сначала переводится в UTF-8, поэтому русские буквы и эмодзи кодируются и восстанавливаются без искажений — в отличие от «голого» btoa в браузере.
Что такое построчный режим?
По умолчанию весь текст кодируется как единое целое. В построчном режиме каждая строка кодируется или декодируется отдельно — удобно, когда у вас список значений.
Что если строка не является Base64?
При декодировании некорректной строки инструмент пометит её как «⚠ не Base64», не прерывая обработку остальных строк.
Похожие инструменты
Изображение в data URI для HTML и CSS и обратно: размер до и после, готовые фрагменты img и background, предпросмотр из строки.
ОткрытьURL энкодер / декодерКодирует ссылки и текст в percent-encoding и обратно. Построчно для списка URL, режим компонента или целой ссылки.
ОткрытьСклонение ФИО по падежамФамилия, имя и отчество по шести падежам с автоопределением пола, инициалы и обработка списка ФИО целиком. Правила зашиты в страницу, без обращения к сервисам.
ОткрытьШифр ЦезаряСдвиг по алфавиту для кириллицы и латиницы, автоподбор ключа по частотности букв, таблица всех сдвигов, ROT13 и ROT47.
ОткрытьФорматирование спискаУбрать пунктуацию, спецсимволы, цифры; схлопнуть пробелы; нижний регистр.
ОткрытьГенератор рыбы-текстаТекст-заглушка для макета: русская рыба, Lorem ipsum и осмысленные абзацы. Объём задаётся в абзацах, словах или знаках, есть заголовки и списки.
ОткрытьКак применять это в продвижении — в разборе SEO-копирайтинг и других материалах блога.
Ещё инструменты для кода и данных
Base64 и URL, форматтер и сравнение JSON, хеши, регулярные выражения, cron, подсети, UUID, QR-код и Unix-время — в разделе 42 инструмента.

