Как пользоваться
- Выберите «Кодировать» или «Декодировать» в верхней части инструмента.
- Введите или вставьте текст либо нажмите «Открыть файл», чтобы закодировать любой файл.
- При необходимости измените параметры «Вариант» (стандартный или безопасный для URL), «Дополнение», «Перенос строк» и «Кодировка текста». Результат обновляется по мере ввода.
- Скопируйте или скачайте результат либо нажмите «Поменять ввод и вывод местами», чтобы обработать его в обратном направлении.
Что такое Base64?
Base64 — это способ записать двоичные данные в виде текста. Любая последовательность байтов представляется 64 печатными символами ASCII: A-Z, a-z, 0-9, + и /, а символ = служит для дополнения. Благодаря этому двоичные данные, например изображения, ключи или архивы, можно без потерь передавать через системы, рассчитанные на текст: электронную почту, JSON, XML, URL и HTML.
Кодировщик читает входные данные по три байта (24 бита) и делит их на четыре группы по 6 бит. Каждое 6-битное значение от 0 до 63 выбирает один символ алфавита. Если длина входных данных не кратна трём, последняя группа дополняется одним или двумя знаками =. Поэтому результат Base64 всегда примерно на 33% больше исходных данных.
Base64 — это кодирование, а не шифрование. Декодировать его может кто угодно, поэтому никогда не используйте Base64, чтобы скрыть пароли или другие секреты.
Base64 и Base64URL
В стандартном Base64 используются символы + и /, которые имеют особое значение в URL и именах файлов. Base64URL, описанный в разделе 5 RFC 4648, заменяет их на - и _ и обычно обходится без дополнения. Он применяется в JSON Web Token, OAuth и везде, где значение должно находиться внутри URL. Декодер на этой странице автоматически принимает оба варианта.
| Стандартный Base64 | Base64URL | |
|---|---|---|
| Символы 62 и 63 | + / | - _ |
| Дополнение | Обязательно, = | Необязательно, обычно опускается |
| Безопасен в URL и именах файлов | Нет | Да |
| Типичное применение | Электронная почта (MIME), data URI, JSON, ключи PEM | JWT, OAuth, параметры URL |
Где применяется Base64
- Почтовые вложения. MIME кодирует вложения в Base64 и разбивает их на строки по 76 символов. Чтобы получить такой формат, используйте параметр «Перенос строк».
- Встраивание изображений и файлов. Data URI позволяют вставлять небольшие изображения, шрифты или значки прямо в HTML и CSS. См. Изображение в Base64 и Base64 в изображение.
- API и конфигурация. В JSON нет двоичного типа, поэтому API передают файлы, подписи и ключи в виде строк Base64. Значения в Kubernetes Secrets тоже хранятся в Base64.
- Аутентификация. При базовой HTTP-аутентификации (Basic) строка
username:passwordпередаётся в Base64, а JSON Web Token состоит из трёх сегментов Base64URL. - Сертификаты и ключи. Файлы PEM содержат данные DER в кодировке Base64, разбитые на строки по 64 символа.
Base64 в языках программирования
| Язык | Кодирование | Декодирование |
|---|---|---|
| JavaScript (браузер) | btoa(binaryString) | atob(base64) |
| Node.js | Buffer.from(str).toString('base64') | Buffer.from(b64, 'base64').toString() |
| Python | base64.b64encode(data) | base64.b64decode(data) |
| PHP | base64_encode($str) | base64_decode($b64) |
| Java | Base64.getEncoder().encodeToString(bytes) | Base64.getDecoder().decode(b64) |
| C# | Convert.ToBase64String(bytes) | Convert.FromBase64String(b64) |
| Go | base64.StdEncoding.EncodeToString(b) | base64.StdEncoding.DecodeString(s) |
| Командная строка | base64 file.bin | base64 -d file.txt |
В браузерах btoa принимает только символы до U+00FF. Чтобы закодировать текст Unicode, например кириллицу, сначала преобразуйте его в байты UTF-8, скажем с помощью TextEncoder, или воспользуйтесь этим инструментом: по умолчанию он кодирует текст в UTF-8.
Не только Base64
На Base64.is есть и остальные кодировки семейства Base-N: Base32, Base58, Base62, Base85, Ascii85, basE91, Base45, шестнадцатеричная и двоичная. Если вы не уверены, какая кодировка используется в строке, попробуйте определитель кодировки или сравните все варианты сразу на странице Все кодировки.
Спецификация
| Алфавит | A-Z a-z 0-9 + / |
|---|---|
| Размер результата | 4 символа на каждые 3 байта (около 133%) |
| Дополнение | = до длины, кратной 4 символам |
| Стандарт | RFC 4648, раздел 4 |
| Учёт регистра | Да |
Примеры
| Исходные данные (UTF-8) | Результат |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Часто задаваемые вопросы
Загружаются ли мои данные на сервер?
Нет. Кодирование и декодирование выполняются полностью в вашем браузере с помощью JavaScript. Введённый текст и файлы не покидают ваше устройство, а после загрузки страницы инструмент продолжает работать даже без подключения к интернету.
Почему декодированный текст выглядит как набор непонятных символов?
Что означают знаки равенства в конце?
Это дополнение (padding). Base64 работает блоками по четыре символа, и знак = заполняет последний блок, если длина входных данных не кратна трём байтам. Один знак = означает, что последний блок кодирует два байта, два знака — что он кодирует один байт.
Насколько увеличиваются данные после кодирования?
Base64 превращает каждые 3 байта в 4 символа, поэтому результат примерно на 33% больше исходных данных. Если включён перенос строк, к этому добавляются символы перевода строки.
Является ли Base64 шифрованием?
Нет. Base64 лишь меняет способ представления данных. У него нет ключа, и декодировать его может кто угодно, поэтому для защиты конфиденциальной информации используйте настоящее шифрование, например AES или TLS.