Бесплатные инструменты

Base64: кодирование / декодирование

Кодирует текст в Base64 или декодирует Base64 обратно в текст, полностью безопасно для UTF-8, с опциональным URL-safe вариантом.

Что делает этот кодировщик и декодировщик Base64

Это двусторонний конвертер Base64, который работает полностью в вашем браузере. Вставьте обычный текст с одной стороны и прочитайте его представление в Base64 с другой, либо вложите блок Base64 и мгновенно восстановите исходные байты. Он работает со стандартным алфавитом, а также с URL-safe вариантом, сам управляет дополнением (padding) и обрабатывает полный текст UTF-8, а не только простой ASCII, поэтому эмодзи, буквы с диакритикой и нелатинские письменности преобразуются туда и обратно без потерь. К такому инструменту вы обращаетесь всякий раз, когда какая-то другая система говорит на языке Base64, а вам нужно прочитать или создать этот формат вручную: изучить data: URI, вручную собрать заголовок HTTP Authorization, извлечь значение из конфигурации YAML или JSON, декодировать фрагмент токена или убедиться, что именно содержит полезная нагрузка webhook, прежде чем встраивать её в код.

Как на самом деле работает Base64

Самое важное, что нужно понять, — это то, что Base64 является кодированием, а не шифрованием и не сжатием. Его единственная задача — представить произвольные двоичные данные с помощью небольшого, безопасного набора печатных символов, чтобы данные могли пройти через каналы, разработанные для текста: тела писем, URL, XML, строки JSON и заголовки HTTP. Он не обеспечивает никакой конфиденциальности. Кто угодно может обратить его за долю секунды — именно это и делает эта страница. Сам механизм — это чистая арифметика над битами:

  • Входные данные рассматриваются как поток 8-битных байтов. Base64 перегруппирует эти биты в 6-битные фрагменты, потому что 2 в 6-й степени равно 64 — как раз размер алфавита.
  • Каждые 3 байта (24 бита) становятся 4 выходными символами (4 умножить на 6 равно 24 бита). Именно из-за этого фиксированного соотношения 3 к 4 вывод Base64 всегда примерно на 33% больше входных данных, из которых он получен.
  • 64 символа — это A–Z, a–z, 0–9 плюс два дополнительных. Стандартный Base64 использует + и /; URL-safe вариант заменяет их на - и _, чтобы строка могла существовать внутри URL, имени файла или cookie без необходимости percent-экранирования.
  • Когда длина входных данных не кратна 3, последнюю группу дополняют одним или двумя символами =, чтобы вывод оставался целым числом 4-символьных блоков. Например, "M" кодируется как "TQ==", "Ma" — как "TWE=", а "Man" — как "TWFu" вовсе без дополнения.

Поскольку преобразование полностью детерминировано и обратимо, декодирование — это просто тот же процесс, запущенный в обратном направлении: сопоставить каждый символ с его 6 битами, соединить биты и нарезать их обратно на 8-битные байты. В алгоритме нет ни ключа, ни какой-либо случайности — именно поэтому Base64 никогда нельзя путать со способом защитить или скрыть конфиденциальные данные.

Конкретные места, где вы с ним столкнётесь

Base64 незаметно присутствует повсюду в веб- и сетевой инфраструктуре. Умение распознать его и декодировать на месте экономит удивительно много времени на отладку.

  • Data URI. Небольшая иконка или SVG, встроенные прямо в HTML или CSS как data:image/png;base64,iVBOR..., позволяют избежать отдельного сетевого запроса. Декодируйте такой здесь, чтобы подтвердить, какое изображение на самом деле отдаётся.
  • Базовая аутентификация HTTP. Заголовок Authorization: Basic dXNlcjpwYXNz — это не что иное, как user:pass, пропущенное через Base64. Именно поэтому Basic auth поверх обычного HTTP считается фактически открытым текстом, и место ему только на зашифрованных соединениях.
  • JSON Web Token. JWT — это три сегмента base64url, соединённые точками: заголовок, полезная нагрузка и подпись. Заголовок и нагрузка — это читаемый JSON, а не секреты. Вы можете декодировать первые две части из Base64, чтобы просмотреть claims, хотя подпись всё равно защищает от подделки.
  • Вложения электронной почты (MIME). Двоичные вложения кодируются в Base64 и традиционно разбиваются по 76 символов на строку, чтобы пройти через почтовые серверы, принимающие только текст.
  • Двоичные данные внутри текстовых форматов. Сертификаты, ключи, небольшие блобы в Kubernetes secrets и подобные значения хранятся как Base64, чтобы они помещались внутри JSON или YAML, не ломая синтаксис.

Советы, распространённые ловушки и куда попадают ваши данные

Несколько практических соображений предотвращают большинство недоразумений. Во-первых, никогда не полагайтесь на Base64, чтобы скрыть учётные данные, токены или персональные данные; относитесь к закодированной строке так, будто она написана открыто. Во-вторых, следите за вариантом: если строка содержит - или _, это URL-safe Base64, и если стандартный декодировщик её отклоняет, причина обычно именно в этом несоответствии. В-третьих, учитывайте дополнение; некоторые системы удаляют конечные символы =, и декодировщику может понадобиться их восстановить, чтобы достичь корректной длины блока. Наконец, помните, что кодирование увеличивает ваши данные примерно на треть, поэтому это плохой выбор для чего-то крупного, где важен размер или пропускная способность. Что касается приватности, это имеет большое значение: этот конвертер работает на 100% локально в вашем браузере с помощью встроенных функций кодирования. Что бы вы ни вставили — заголовки аутентификации, содержимое токенов или приватные фрагменты — оно обрабатывается на вашем собственном устройстве и никогда не загружается, не сохраняется и не журналируется нами. Эта гарантия исключительно локальной работы и есть суть всего, и тот же принцип лежит в основе других наших инструментов для разработчиков, позволяя декодировать подозрительный токен или строку Basic auth, ни разу не передавая её стороннему серверу.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.