Что такое Base64?
Base64 — это способ записать любые данные, будь то текст, изображения или целые файлы, всего 64 безопасными символами: A–Z, a–z, 0–9, + и /, а в конце в качестве дополнения ставится = (определено в RFC 4648). Он существует для того, чтобы двоичные данные могли проходить через системы, рассчитанные на обычный текст, например электронную почту, JSON, HTML и HTTP-заголовки.
Каждые 3 байта входных данных превращаются в 4 символа Base64, поэтому закодированные данные примерно на 33% больше исходных. Например, текст Hi превращается в SGk=. Base64 встречается во вложениях электронной почты, в data: URI изображений в HTML и CSS, в ответах API, которые передают файлы, в JSON Web Token и в заголовках HTTP Basic-аутентификации.

Как декодировать Base64
Вставьте строку в поле Декодировать. Переносы строк, пробелы, префикс data:...;base64,, URL-безопасные символы (- и _) и отсутствующее дополнение = обрабатываются автоматически.
Если данные — это текст, декодированный текст в UTF-8 появляется сразу, и его можно скопировать.
Если данные — это файл, декодер определяет формат по первым байтам: изображения показываются в предпросмотре, а PDF, ZIP и другие файлы можно скачать.
Advertisement
Как закодировать текст или файл в Base64
Введите или вставьте текст на вкладке Кодировать. Он кодируется как UTF-8, поэтому кириллица, буквы с диакритикой, азиатские письменности и эмодзи после обратного декодирования остаются без искажений.
Отметьте URL-безопасный для Base64URL (используется в URL и JWT) или переносить строки по 76 символов для писем в формате MIME.
На вкладке Файл в Base64 перетащите любой файл размером до 10 MB. Скопируйте чистый Base64 или готовый data URI, например data:image/png;base64,..., чтобы встроить его в HTML или CSS.
Base64 в картинку и Base64 в PDF
Часто внутри Base64 находится файл: изображение, встроенное в веб-страницу или письмо, или PDF, который вернул API. Декодер проверяет первые байты, так называемые магические числа (magic numbers), чтобы понять, что это за файл: для изображений PNG, JPEG, GIF, WebP и SVG показывается предпросмотр, а для файлов PDF, ZIP, GZIP, MP3 и MP4 появляется кнопка скачивания. PDF также можно открыть в новой вкладке.
В обратную сторону, картинку в Base64 можно перевести на вкладке «Файл в Base64»: перетащите изображение и скопируйте data URI.
Advertisement
Варианты Base64: стандартный, URL-безопасный, MIME и data URI
Использует + и / с дополнением =. Вариант по умолчанию в большинстве библиотек и API.
Заменяет + и / на - и _ и обычно отбрасывает дополнение, поэтому результат можно поместить в URL или имя файла. Его используют JSON Web Token.
Стандартный Base64, разбитый на строки по 76 символов, как во вложениях электронной почты.
Base64 с префиксом, который указывает тип файла, например data:image/png;base64,, чтобы браузер мог показать его прямо на странице.
Base64 — это кодирование, а не шифрование
Base64 делает данные пригодными для передачи, но не секретными. Любой может декодировать их за секунду, в том числе с помощью этого инструмента:
Никогда не используйте Base64, чтобы скрыть пароли или ключи. Заголовок HTTP Basic-аутентификации — это просто
user:passwordв Base64, поэтому передавать его можно только по HTTPS. Проверьте сертификат сайта с помощью проверки SSL.Содержимое JWT можно прочитать. Средняя часть JSON Web Token — это JSON, закодированный в Base64URL, поэтому любой, у кого есть токен, может прочитать его утверждения (claims).
Декодирование здесь конфиденциально. Этот инструмент работает полностью в вашем браузере; данные, которые вы вставляете или загружаете, никогда не попадают на наш сервер.
Нужна настоящая секретность? Используйте полноценное шифрование, а надёжные секреты создавайте с помощью генератора паролей.
Advertisement
Base64 в JavaScript, Python и командной строке
В каждом языке есть встроенная поддержка Base64. Не забудьте сначала закодировать текст в UTF-8, иначе символы за пределами латиницы, например кириллица, будут искажены.
// Encode UTF-8 text
const b64 = btoa(String.fromCharCode(...new TextEncoder().encode('héllo'))) // 'aMOpbGxv'
// Decode back to text
const text = new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)))import base64
b64 = base64.b64encode('héllo'.encode()).decode() # 'aMOpbGxv'
text = base64.b64decode(b64).decode() # 'héllo'
url_safe = base64.urlsafe_b64encode(b'\xfb\xff\xbf') # b'-_-_'echo -n 'hello' | base64 # aGVsbG8=
echo 'aGVsbG8=' | base64 --decode # hello
base64 -w 0 image.png > image.txt # Linux: one line, no wrapping[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aGVsbG8=')) # helloДругие инструменты для кодирования и работы с текстом
Другие конвертеры для работы с текстом и данными:
Текст в двоичный код и обратно, а также hex, десятичный и восьмеричный вид.
Находите и удаляйте скрытые символы нулевой ширины.
Посмотрите заголовки, которые возвращает сервер, включая закодированные.
Создавайте надёжные случайные пароли и секреты.