Декодирование Base64
Бесплатный онлайн-инструмент для декодирования Base64, который возвращает строку Base64 в исходный текст. Поддерживает несколько кодировок и удобен для анализа API и логов.
Похожие
Что такое декодирование Base64?
Декодирование Base64 — это обратный процесс по отношению к кодированию Base64: строка Base64 (например, SGVsbG8=) преобразуется обратно в исходный текст или бинарные данные. Base64 — это способ представления бинарных данных с помощью 64 печатных ASCII-символов (A-Z, a-z, 0-9, +, /), определённый в RFC 4648.
**Типичные сценарии декодирования:** Base64 широко используется в заголовках HTTP Basic Authentication, сегментах payload токенов JWT, полях ответов API, Data URI (например, `data:image/png;base64,...`), MIME-кодировании почтовых вложений и хранении BLOB-полей в базах данных. Декодирование таких значений — обычная задача при разработке и отладке.
**Ключевые моменты при декодировании:** при декодировании Base64 важно правильно обработать: 1) кодировку (UTF-8 для многобайтных символов, ASCII для чистого английского текста); 2) Padding (`=`), так как длина должна быть кратна 4; 3) URL-safe вариант (`-` и `_` вместо `+` и `/`); 4) переводы строк и пробелы (в стандартном Base64 их нет, а MIME-вариант добавляет перенос каждые 76 символов).
**Нативная поддержка браузера:** браузер предоставляет функцию `atob()` для декодирования Base64, но она работает только с Latin-1 (ISO-8859-1). Для обработки UTF-8 текста нужно сначала преобразовать байты через `TextDecoder('utf-8')`. Этот инструмент делает это автоматически.
**Локальная обработка и приватность:** все операции декодирования выполняются прямо в браузере. Введённая строка Base64 не отправляется на сервер, поэтому можно безопасно декодировать чувствительные токены из API или пользовательские данные из логов.
Варианты использования
- Декодирование полей Base64 из ответов API для просмотра исходного содержимого
- Восстановление данных Base64 из логов
- Возврат значений Base64 из конфигурационных файлов
- Поиск причин ошибок декодирования Base64, например отсутствующего padding или недопустимых символов
- Декодирование header и payload JWT для просмотра информации о пользователе
- Декодирование учётных данных HTTP Basic Authentication для просмотра логина и пароля
- Восстановление изображений или данных ресурсов из Data URI Scheme
Как использовать
- Вставьте строку Base64, которую нужно декодировать
- Выберите кодировку (UTF-8/ASCII/ISO-8859-1)
- Инструмент автоматически декодирует Base64 и покажет результат
- Скопируйте результат для дальнейшей отладки или документации
Функции
- Мгновенное двустороннее преобразование: ввод автоматически декодируется с задержкой 300 мс, без ручного запуска
- Поддержка нескольких кодировок: UTF-8, ASCII и ISO-8859-1 для русского, английского и многоязычных сценариев
- Совместимость с URL-safe Base64: автоматически обрабатывает замену `-` и `_`, а также формат без padding
- Поиск недопустимых символов: при ошибке декодирования показывает место проблемы
- Копирование и скачивание в один клик: можно скопировать результат в буфер обмена или сохранить как `.txt`
- Автоматическая обработка padding: символы `=` добавляются или удаляются автоматически
- Поддержка MIME-варианта: распознаёт и обрабатывает MIME Base64 с переносами строк каждые 76 символов
Примеры кода
JavaScript: декодирование через браузерный `atob()` (только Latin-1)
javascriptИспользуйте встроенный API браузера для декодирования простого Base64. Для UTF-8 нужен `TextDecoder`.
// Standard Base64 decode (plain English / Latin-1)
function b64Decode(str) {
try {
return atob(str);
} catch (e) {
return 'Decode failed: ' + e.message;
}
}
console.log(b64Decode('SGVsbG8gV29ybGQ=')); // "Hello World"
// UTF-8 decode (recommended)
function b64DecodeUtf8(str) {
const binary = atob(str);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return new TextDecoder('utf-8').decode(bytes);
}
console.log(b64DecodeUtf8('5LiW55WM')); // UTF-8 textPython: декодирование через библиотеку `base64` (включая URL-Safe)
pythonСтандартная библиотека `base64` в Python поддерживает режимы Standard и URL-Safe.
import base64
# Standard decode
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
# URL-Safe decode
url_encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.urlsafe_b64decode(url_encoded + '=' * (4 - len(url_encoded) % 4))
print(decoded.decode('utf-8'))
# MIME decode (after removing line breaks)
mime_encoded = 'SGVs\nbG8g\nV29y\nbGQ='
decoded = base64.b64decode(mime_encoded.replace('\n', '')).decode('utf-8')
print(decoded)
# Ignore invalid characters automatically
import re
cleaned = re.sub(r'[^A-Za-z0-9+/=]', '', encoded)
decoded = base64.b64decode(cleaned).decode('utf-8')
print(decoded)Java: декодирование через `java.util.Base64` (разные варианты)
javaСтандартная библиотека Java полностью поддерживает Base64 RFC 4648, URL-Safe и MIME.
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
String encoded = "SGVsbG8g5LiW55WM";
// Standard decode
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// URL-Safe decode
byte[] urlDecoded = Base64.getUrlDecoder().decode(encoded);
System.out.println(new String(urlDecoded, StandardCharsets.UTF_8));
// MIME decode (handles line breaks automatically)
String mime = "SGVs\nbG8g\nV29y\nbGQ=";
byte[] mimeDecoded = Base64.getMimeDecoder().decode(mime);
System.out.println(new String(mimeDecoded, StandardCharsets.UTF_8));
// Error handling
try {
Base64.getDecoder().decode("invalid@base64");
} catch (IllegalArgumentException e) {
System.err.println("Decode failed: " + e.getMessage());
}
}
}Часто задаваемые вопросы
Почему при декодировании Base64 возникает InvalidCharacterError?
Обычно это происходит из-за пробелов, переводов строк, кавычек, неверного количества Padding (`=`) или использования URL-safe варианта (`-/_`) как обычного Base64. Сначала очистите входную строку.
Что делать, если после декодирования текст выглядит как набор символов?
Скорее всего, выбрана неправильная кодировка. Для многобайтного текста выбирайте UTF-8. Для простого английского текста или бинарных данных попробуйте ASCII или ISO-8859-1.
Чем отличается декодирование URL-safe Base64 от обычного Base64?
URL-safe Base64 использует `-` и `_` вместо `+` и `/`, а завершающий Padding `=` часто отсутствует. Перед декодированием нужно вернуть `-/_` в `+/` и дополнить padding.
Подходит ли декодирование Base64 для отладки интеграций API?
Да, отлично подходит. Многие ответы API, токены OAuth, callback-параметры и middleware-логи заворачивают данные в Base64. После декодирования можно сразу увидеть исходное содержимое.
Как декодировать header или payload JWT?
JWT использует Base64URL (URL-safe вариант). Вставьте первый сегмент JWT (header) или второй сегмент (payload) и выберите режим URL-safe. Третий сегмент — это подпись, и его не следует проверять простым декодированием.
Поддерживает ли инструмент большие файлы?
Жёсткого ограничения по размеру нет, но при очень больших строках производительность браузера снижается. Декодирование Base64-строк больше 10 МБ может замедлить страницу, поэтому лучше использовать разбиение на части или скрипт на Node.js / Python.
Что делать, если отсутствует padding?
Инструмент автоматически добавляет Padding (`=`), чтобы длина стала кратной 4. Так как URL-safe вариант часто пропускает padding, инструмент сам это определяет и дополняет строку.
Декодирование Base64 — это расшифровка?
Нет. Base64 — это обратимое кодирование, а не шифрование. Любой может декодировать Base64. Для чувствительных данных нужно использовать настоящее шифрование, например AES.
Совпадает ли результат `atob()` в браузере с этим инструментом?
Для простого английского текста обычно да. Но `atob()` понимает только Latin-1 и не умеет напрямую работать с UTF-8. Этот инструмент эквивалентен связке `atob()` + `TextDecoder`.
Можно ли экспортировать результат декодирования?
Да. Его можно скопировать в буфер обмена одним кликом или скачать как файл `.txt`. Загружаемый файл имеет кодировку UTF-8 и открывается в любом текстовом редакторе или Excel.
Глоссарий
- Base64
- Метод кодирования бинарных данных в текст с использованием 64 печатных ASCII-символов, описанный в RFC 4648. Каждые 3 байта превращаются в 4 символа, поэтому размер увеличивается примерно на 33%.
- atob()
- Встроенная браузерная функция декодирования Base64 (ASCII to Binary). Поддерживает только Latin-1, поэтому для UTF-8 нужна связка с TextDecoder.
- Padding
- В конце Base64 добавляются символы `=`, чтобы длина стала кратной 4. При декодировании padding обычно обрабатывается автоматически. В URL-safe варианте он часто опускается.
- URL-Safe Base64
- URL-безопасный вариант Base64, определённый в RFC 4648 §5, где используются `-` и `_` вместо `+` и `/`. Часто применяется в JWT и OAuth PKCE.
- MIME Base64
- Вариант Base64 по RFC 2045, который вставляет CRLF после каждых 76 символов. В основном используется для почтовых вложений.
- UTF-8
- Кодировка Unicode переменной длины. Чтобы правильно восстановить многобайтные символы, при декодировании Base64 нужно выбирать UTF-8.
- InvalidCharacterError
- Ошибка, которую выбрасывает `atob()`, если во входной строке есть пробелы, переводы строк или другие недопустимые символы для Base64.
- Latin-1 (ISO-8859-1)
- Однобайтная кодировка для западноевропейских языков. Браузерные `atob` и `btoa` напрямую работают только с ней.
Сравнение 3 вариантов Base64
Перед декодированием определите тип Base64 на входе и выберите правильный режим, чтобы избежать ошибок и повреждённого вывода.
| Свойство | Standard | URL-Safe | MIME |
|---|---|---|---|
| Спецсимволы | + / | - _ | + / |
| Padding (=) | Используется | Обычно пропускается | Используется |
| Перевод строки | Нет | Нет | Каждые 76 символов |
| Стандарт | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Типичные сценарии | Data URI, общее кодирование | JWT, URL-параметры, имена файлов | Почтовые вложения, SMTP-передача |
| На что обратить внимание | Иногда нужно дополнить padding | Сначала замените -_ на +/, затем декодируйте | Удалите переводы строк перед декодированием |
5 типичных ошибок при декодировании Base64
Если при декодировании возникает ошибка, эта таблица поможет быстро найти причину.
| Тип ошибки | Возможная причина | Решение |
|---|---|---|
| InvalidCharacterError | Есть пробелы, переводы строк или символы вне Base64 | Очистите входную строку или используйте инструмент Base64 Clean |
| Некорректный текст после декодирования | Выбрана неверная кодировка, например UTF-8 прочитан как Latin-1 | Переключитесь на UTF-8 |
| Ошибка в URL-параметре | URL-safe символы (`-_`) декодируются как стандартный Base64 | Сначала замените `-_` на `+/` |
| Неверный padding | Длина не кратна 4 | Добавляйте `=`, пока длина % 4 = 0 |
| Пустая строка | Во входе только пробелы или переводы строк | Удалите пробелы и введите строку снова |
Authoritative References
- Безопасное сравнение строк
- Двоичное Кодирование
- Шифр Цезаря
- Азбука Морзе
- Hex Кодирование
- Видео в Base64
- Base64 в видео
- Изображение в Base64
- Base64 в изображение
- Текст в Base64
- Base64 в текст
- Проверка хеша файла
- Файл в Base64
- Base64 в Файл
- Аудио в Base64
- Base64 в Аудио
- AES-шифрование и расшифровка
- DES Шифрование
- Кодировщик и Декодер Base32
- Base58 кодирование и декодирование
- Кодирование Base64
- Декодирование Base64
- Сравнение Base64
- Разбиение Base64
- Base64 — объединение строк
- Форматирование Base64
- Валидация Base64
- Пакетное кодирование Base64
- Пакетное декодирование Base64
- Очистка Base64
- Обработка заполнения Base64
- Base64 в Hex
- Преобразователь Base64 DataURL
- Base64-Hex конвертер
- Base85 Кодирование
- Генератор и верификатор HMAC
- PBKDF2
- Хеш MD5
- SHA-256 хэш
- SHA1 хеш
- Хеш SHA512
- JWT
- HTML Кодирование
- Unicode экранирование
- URL-кодирование
- Base64 URL-Safe
- MIME Base64
- Обфускация Java
- Обфускация JS
- Обфускация PHP
- Обфускация Python
- Статистика длины Base64