Строка из букв и цифр с загадочными +, / и = на конце. Или наоборот: нужно передать бинарные данные в JSON, а JSON не умеет хранить байты. Base64 — способ записать двоичные данные буквами и цифрами, и инструмент, который кодирует текст в Base64 и раскодирует строку обратно. Поддерживаются кириллица, эмодзи и вариант Base64URL для адресов и токенов, а всё выполняется в браузере.
В этой статье разберём, что такое Base64, зачем он нужен, чем Base64URL отличается от обычного, почему Base64 — не шифрование и как не перепутать его с URL-кодированием.

Что умеет инструмент
Base64 принимает текст или строку Base64 и выполняет одно из двух действий.
| Действие | Что делает |
|---|---|
| Закодировать | Переводит текст в Base64 |
| Раскодировать | Переводит строку Base64 обратно в текст |
| Base64URL | Использует вариант для адресов и токенов: - и _ вместо + и /, без = в конце |
Результат показывается строкой с кнопкой копирования. Дополнительно выводится счётчик символов: сколько было в исходнике и сколько получилось.
Поддерживаются кириллица и эмодзи: инструмент работает с UTF-8, поэтому русский текст и составные эмодзи кодируются и раскодируются корректно.
Всё выполняется в браузере: введённые данные никуда не отправляются.
Что такое Base64 и зачем он нужен
Base64 — способ представления двоичных данных с помощью 64 символов: латинских букв в обоих регистрах, цифр, + и /. На конце может стоять = — выравнивающий символ.
Зачем это нужно:
| Задача | Почему Base64 |
|---|---|
| Передача бинарных данных в текстовом протоколе | JSON, XML и электронная почта не умеют хранить байты напрямую |
| Встраивание изображений | Data URI: data:image/png;base64,... |
| Токены | JWT состоит из трёх Base64URL-сегментов |
| Заголовки HTTP | Basic Auth передаёт логин:пароль в Base64 |
| Хранение в текстовых полях | Бинарные данные в базе, которая ожидает текст |
Base64 не сжимает данные и не шифрует их. Он увеличивает размер примерно на треть: каждые 3 байта превращаются в 4 символа. Зато результат состоит только из безопасных ASCII-символов, которые не ломаются при передаче.
Base64 — это не шифрование
Самый частый вопрос и самое опасное заблуждение. Base64 — не шифрование. Это кодирование: способ записи, который любой может обратить.
Если вы закодировали пароль или секрет в Base64, это не защита. Любой, кто получил строку, раскодирует её за секунду. Base64 не хранит ключ и не скрывает данные — он только меняет форму записи.
Для защиты данных нужно шифрование (AES, ChaCha20 и т. п.) или хеширование с солью для паролей. Base64 для этого не подходит.
Base64URL: чем отличается
Обычный Base64 использует + и /, а на конце — =. Эти символы проблемны в URL и некоторых других контекстах: + в адресе может интерпретироваться как пробел, / — как разделитель пути.
Base64URL решает это:
| Обычный Base64 | Base64URL |
|---|---|
+ |
- |
/ |
_ |
= в конце |
Убирается |
Base64URL используется в JWT (JSON Web Token), параметрах адресов и других местах, где строка должна безопасно передаваться в URL.
Если вы работаете с токеном или параметром адреса — включайте Base64URL. Если строка получена из Base64URL, а вы декодируете её как обычный Base64, результат может быть неверным.
Кириллица и эмодзи: почему это работает
Base64 кодирует байты, а не символы. Текст сначала переводится в байты по кодировке UTF-8, затем байты кодируются в Base64.
Для кириллицы это важно: одна русская буква в UTF-8 занимает 2 байта, а не 1. Поэтому строка «Тестовый текст» из 14 символов даёт 27 байт UTF-8, а после Base64 — 36 символов. Эмодзи занимают ещё больше байт, но кодируются и раскодируются корректно, если инструмент работает с UTF-8.
Инструмент поддерживает UTF-8, поэтому кириллица и эмодзи не превращаются в «кракозябры» при раскодировании.
Base64 и URL-кодирование: не путать
Два разных способа кодирования, которые часто путают.
| Base64 | URL-кодирование | |
|---|---|---|
| Что кодирует | Двоичные данные в текст | Символы в адресе |
| Пример | Тест → 0KLQtdGB0YI= |
Тест → %D0%A2%D0%B5%D1%81%D1%82 |
| Зачем | Передать байты в текстовом протоколе | Передать спецсимволы в URL |
| Где используется | JSON, JWT, Data URI, Basic Auth | Параметры адреса, query string |
Base64 и URL-кодирование решают разные задачи. Для параметров адреса нужен URL Encoder/Decoder, для бинарных данных в тексте — Base64.
Зачем кодировать в Base64
Передача данных в JSON. JSON не хранит байты. Если нужно передать изображение или бинарный файл, его кодируют в Base64.
Встраивание изображений. Data URI позволяет вставить картинку прямо в HTML или CSS без отдельного файла.
Токены. JWT состоит из Base64URL-сегментов. Чтобы посмотреть содержимое токена, его раскодируют.
Basic Auth. Заголовок Authorization: Basic ... содержит логин:пароль в Base64.
Проверка данных. Быстро раскодировать строку, чтобы понять, что в ней, или закодировать текст для вставки в конфиг.
Ограничения инструмента
- Только текст и Base64-строки. Инструмент не работает с файлами напрямую — для файлов нужны другие средства.
- Нет автоматического определения направления. Нужно выбрать «Закодировать» или «Раскодировать» вручную.
- Base64URL нужно включать отдельно. Если строка в Base64URL, а опция выключена, декодирование может дать неверный результат.
Как пользоваться: пошагово
- Вставьте текст или строку Base64.
- Для токенов и адресов отметьте «Base64URL».
- Нажмите «Закодировать» или «Раскодировать» и скопируйте результат.
Типичные ошибки
Считать Base64 шифрованием. Это кодирование, которое любой может обратить. Для защиты нужны шифрование или хеширование с солью.
Путать Base64 и URL-кодирование. Это разные вещи. Для адресов — URL-кодирование, для бинарных данных в тексте — Base64.
Декодировать Base64URL как обычный Base64. Символы - и _ не входят в обычный алфавит, результат может быть неверным. Включайте опцию Base64URL.
Ожидать, что размер уменьшится. Base64 увеличивает данные примерно на треть. Это нормально.
Игнорировать выравнивание =. В обычном Base64 = в конце важен. В Base64URL его убирают. При декодировании это нужно учитывать.
Кодировать большие файлы вручную. Для больших бинарных данных Base64 в текстовом поле — плохая идея: строка станет огромной. Используйте специализированные средства.
Вопросы и ответы
Base64 — это шифрование? Нет. Это способ записать двоичные данные буквами и цифрами. Раскодировать его может любой, поэтому секреты так не защищают.
Чем отличается Base64URL? Вместо символов + и / используются - и _, а знаки = в конце убираются. Так кодируются JWT и параметры адресов.
Почему кириллица кодируется в длинную строку? Текст переводится в байты UTF-8, где русская буква занимает 2 байта, а затем байты кодируются в Base64. Поэтому строка длиннее исходной.
Можно ли закодировать файл? Инструмент работает с текстом и Base64-строками. Для файлов нужны другие средства.
Почему результат длиннее исходного текста? Base64 увеличивает данные примерно на треть: каждые 3 байта превращаются в 4 символа.
Как понять, что передо мной Base64? Строка состоит из букв, цифр, +, / и, возможно, = в конце. Но это не гарантия: похожие строки могут быть другими кодировками. Если строка в Base64URL — содержит - и _.
Итог
Base64 — инструмент для кодирования текста в Base64 и декодирования строки обратно. Поддерживаются кириллица, эмодзи и вариант Base64URL для адресов и токенов, а всё выполняется в браузере. Помните, что Base64 — не шифрование, не путайте его с URL-кодированием и включайте Base64URL для токенов — и кодирование будет работать на передачу данных, а не на ложное чувство защиты.