Декодируем простое слово
SGVsbG8gV29ybGQ=
Hello World
Завершающий = — это padding: Hello World занимает 11 байт, что не кратно 3. Декодер всегда корректно его убирает.
Мгновенно кодируйте или декодируйте строки и файлы Base64.
Последнее обновление
Base64 — это схема кодирования, которая представляет бинарные данные с помощью 64 печатаемых символов. Разработчики берут её всегда, когда чисто текстовый канал должен переносить байты: маленькие картинки, встроенные прямо в HTML, токены, вложения email, data-URL, секреты, которые удобно вставить в логи, и поля JSON, где лежат бинарные блоки.
Base64 — это *кодирование*, а не шифрование. Декодировать строку Base64 обычно можно мгновенно и получить исходное содержимое, поэтому полагаться на неё как на защиту нельзя. Всё, что лежит внутри Base64, фактически открыто — если только данные не были зашифрованы *до* кодирования.
Под капотом Base64 берёт 3 байта (24 бита) и переписывает их 4 символами из фиксированного алфавита из 64 знаков (A–Z, a–z, 0–9, +, /). Если длина входа не кратна 3, кодировщик добавляет один или два символа = в конце — это padding. Именно поэтому строки Base64 часто заканчиваются на =.
= дополняют последнюю четвёрку — это нормальная часть многих строк Base64, а не ошибка.Выберите Encode, если у вас обычный текст или файл и вам нужен Base64 на выходе. Decode — если у вас уже строка Base64, и вы хотите получить исходное содержимое.
Вставьте строку в текстовое поле или перетащите файл (картинку, PDF, что угодно) в зону drop. Файлы превращаются в data:-URL, готовый к встраиванию в HTML или CSS.
При кодировании вы получите строку Base64. При декодировании — исходный текст, а если на входе был файл, то восстановленные байты в виде ссылки на скачивание.
Нажмите кнопку копирования, чтобы поместить результат в буфер обмена. Всё работает прямо в браузере — данные никуда не уходят с вашей машины.
То, с чем вы будете сталкиваться постоянно, как только начнёте работать с Base64, — всё описано в RFC 4648.
| Элемент | Что это | Пример |
|---|---|---|
| Алфавит | 64 символа стандартного Base64 | A–Z, a–z, 0–9, +, / |
| URL-safe алфавит | Используется в JWT и URL | A–Z, a–z, 0–9, -, _ |
| Padding | Дополняет последнюю группу, если длина не кратна 3 | = или == |
| Размер группы | Байт на блок → символов на выходе | 3 байта → 4 символа |
| Рост длины | Результат примерно на 33% длиннее входа | 100 Б → 136 символов |
| Data URL | Встраивание файла прямо в HTML/CSS | data:image/png;base64,... |
SGVsbG8gV29ybGQ=
Hello World
Завершающий = — это padding: Hello World занимает 11 байт, что не кратно 3. Декодер всегда корректно его убирает.
{"role":"student","active":true}eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=
Сегменты JWT кодируются ровно так же — поэтому payload JWT почти всегда начинается с eyJ: это Base64-форма {".
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=
Префикс задаёт MIME-тип (image/png) и тип кодирования (base64). После запятой идёт само содержимое файла. Удобно для крошечных картинок, которые подгружаются вместе со страницей.
Pj4/Pyc+Pg==
Pj4_Pyc-Pg
URL-safe Base64 заменяет + на - и / на _, чтобы значение можно было вставлять прямо в URL без дополнительного экранирования. JWT использует именно этот вариант.
= и скармливать результат строгому декодеру, который ждёт padding. (URL-safe декодеры обычно прощают отсутствие padding, стандартные — далеко не всегда.)= как padding.atob() в браузере, Buffer.from(str, 'base64') в Node.js, base64.b64decode() в Python.=?= — это padding. На каждые 3 байта входа Base64 выдаёт 4 символа. Когда длина входа не кратна 3, в конец добавляется один или два =, чтобы итоговая длина оставалась кратной 4.data:image/png;base64,... — изображение встроится прямо в HTML, CSS или JSON, без отдельного сетевого запроса.