Декодирование Base64

Ввод Base64
0 символов

Бесплатный онлайн-инструмент для декодирования 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

Как использовать

  1. Вставьте строку Base64, которую нужно декодировать
  2. Выберите кодировку (UTF-8/ASCII/ISO-8859-1)
  3. Инструмент автоматически декодирует Base64 и покажет результат
  4. Скопируйте результат для дальнейшей отладки или документации

Функции

  • Мгновенное двустороннее преобразование: ввод автоматически декодируется с задержкой 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 text

Python: декодирование через библиотеку `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 на входе и выберите правильный режим, чтобы избежать ошибок и повреждённого вывода.

СвойствоStandardURL-SafeMIME
Спецсимволы+ /- _+ /
Padding (=)ИспользуетсяОбычно пропускаетсяИспользуется
Перевод строкиНетНетКаждые 76 символов
СтандартRFC 4648 §4RFC 4648 §5RFC 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