Как пользоваться
- Вставьте строку Base64 в поле ввода или нажмите «Открыть файл», чтобы загрузить файл с текстом в Base64.
- Для текста оставьте в параметре «Формат вывода» значение «Текст» и выберите кодировку (по умолчанию UTF-8), а для двоичных данных переключите его на Hex.
- Если декодировать не удалось, прочитайте сообщение об ошибке: в нём указана позиция первого недопустимого символа.
- Скопируйте декодированный результат или скачайте его.
Какие данные принимает декодер
Декодирование — это обратная операция: каждый символ снова превращается в своё 6-битное значение, а каждые четыре символа дают три байта. Base64, который встречается на практике, редко бывает идеально чистым, поэтому декодер терпимо относится к типичным отклонениям:
- Пробелы и переносы строк игнорируются, поэтому разбитые на строки тела MIME и блоки PEM можно вставлять как есть. Однако строки
-----BEGINи-----ENDсначала удалите: их буквы и дефисы являются допустимыми символами Base64 и будут декодированы как данные. - URL-безопасный ввод с
-и_декодируется так же, как стандартный Base64 с+и/. - Отсутствие дополнения не мешает. Отклоняется только длина 4n + 1 символов, потому что один оставшийся символ не может образовать байт; обычно это означает, что строка обрезана.
- Data URI тоже поддерживаются: префикс
data:...;base64,в начале удаляется перед декодированием.
Текстовый или двоичный результат
Результат декодирования — всегда последовательность байтов. Если исходные данные были текстом, оставьте вывод в виде текста и выберите его кодировку. Если это было изображение, PDF, архив, ключ или шифротекст, никакая кодировка не сделает его читаемым: переключите вывод в Hex, чтобы изучить байты, или откройте Base64 в файл либо Base64 в изображение, чтобы просмотреть и сохранить данные. Часто содержимое выдают уже первые символы:
| Base64 начинается с | Декодированное содержимое |
|---|---|
iVBORw0KGgo | Изображение PNG |
/9j/ | Изображение JPEG |
R0lGOD | Изображение GIF |
JVBERi0 | Документ PDF |
UEsDB | Архив ZIP, в том числе DOCX, XLSX и JAR |
H4sI | Данные, сжатые gzip |
eyJ | Объект JSON, например заголовок JWT |
Почему декодированный текст нечитаем
- Неверная кодировка. Если прочитать текст в UTF-8 как Windows-1252, буква é превратится в
é, кириллица в UTF-8, прочитанная как Windows-1251, превратится в последовательности вида «Р°Р±», а на месте текста в GBK или Shift_JIS, прочитанного как UTF-8, появятся символы замены (�). Выберите кодировку, в которой был записан текст. - Двоичные данные. Случайные символы с отдельными читаемыми фрагментами, например
PNGилиPKв начале, означают, что содержимое — файл, а не текст. - Сжатые или зашифрованные данные. Потоки gzip, Protocol Buffers и шифротекст декодируются правильно, но текстом не являются. Вывод в Hex покажет, что там на самом деле.
- Двойное кодирование. Если результат сам является Base64, вставьте его обратно в поле ввода и декодируйте ещё раз.
Декодирование Base64 в коде
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (принимает и URL-безопасный ввод)
Buffer.from(s, 'base64').toString('utf8')
// Браузер: atob() возвращает по одному символу на байт, поэтому затем декодируйте UTF-8
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# Оболочка Linux и macOS
echo 'SGVsbG8=' | base64 --decode
Спецификация
| Алфавит | A-Z a-z 0-9 + / |
|---|---|
| Размер результата | 4 символа на каждые 3 байта (около 133%) |
| Дополнение | = до длины, кратной 4 символам |
| Стандарт | RFC 4648, раздел 4 |
| Учёт регистра | Да |
Примеры
| Исходные данные (UTF-8) | Результат |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Часто задаваемые вопросы
Почему появляется ошибка о недопустимом символе?
%2B и %3D, скопированные из URL. Удалите кавычки или сначала выполните URL-декодирование строки. В сообщении об ошибке указана позиция первого недопустимого символа.Можно ли декодировать Base64 без дополнения?
= в конце, поэтому строки без дополнения из JWT, URL и API декодируются как обычно.Почему после копирования Base64 из URL результат получается неверным?
+ часто превращается в пробел. Здесь пробелы игнорируются, поэтому эти символы теряются. Перед декодированием замените пробелы на +, а для значений, передаваемых в URL, используйте Base64URL.Как декодировать Base64 в изображение или файл?
Отправляются ли мои данные Base64 на сервер?
Нет. Декодирование выполняется в вашем браузере с помощью JavaScript, и входные данные не покидают ваше устройство. Это важно, когда вы декодируете токены, секреты из конфигурации или персональные данные.