Base64: кодировать и декодировать

Переведите текст в Base64 или расшифруйте строку Base64 обратно в текст. Кириллица и эмодзи кодируются в UTF-8, поэтому после декодирования не будет «кракозябр». Есть вариант Base64 для URL — с «-» и «_» вместо «+» и «/».

Символов
0
Слов
0
Строк
0

Ваш текст не покидает ваше устройство.

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

  1. Выберите «Закодировать» или «Декодировать».
  2. Вставьте текст или строку Base64; для ссылок и токенов включите «Для URL».
  3. Скопируйте результат.

Примеры

  • До
    Привет, мир!
    После
    0J/RgNC40LLQtdGCLCDQvNC40YAh
  • До
    0J/RgNC40LLQtdGC (декодировать)
    После
    Привет
  • До
    Привет? (для URL)
    После
    0J_RgNC40LLQtdGCPw

Где встречается Base64

  • Электронная почта. Вложения и письма в нестандартной кодировке передаются в Base64.
  • Data URL. Маленькие картинки и шрифты встраивают в HTML и CSS строкой вида data:image/png;base64,….
  • API и токены. Заголовок Authorization: Basic содержит логин и пароль в Base64, части JWT-токенов закодированы в варианте для URL.
  • Конфиги и секреты. Kubernetes хранит значения секретов в Base64 — напомним, это не шифрование.

Частые ошибки

  • Считать Base64 защитой. Пароль в Base64 читается за секунду. Для защиты нужны шифрование и надёжное хранилище.
  • Путать варианты. Строка с «-» и «_» — это Base64 для URL. Обычный декодер может её не принять; этот понимает оба варианта.
  • Лишние символы. Пробелы и переносы строк внутри Base64 при декодировании игнорируются, а символы вроде «$» или кириллица — ошибка: «Это не Base64: недопустимый символ в позиции 4».
  • Неверная кодировка. Если текст кодировали в Windows-1251, при декодировании в UTF-8 он превратится в нечитаемые символы. Узнайте у отправителя, в какой кодировке был исходный текст.

Безопасность

Кодирование и декодирование выполняются в вашем браузере. Строки с токенами и паролями никуда не отправляются, но не забудьте нажать «Очистить», если работаете за чужим компьютером.

Как проверить результат

Закодируйте короткую фразу и тут же декодируйте её обратно: если получилась исходная строка, значит кодировка выбрана правильно. Для кириллицы это особенно важно: «Привет» в UTF-8 даёт 0J/RgNC40LLQtdGC, и именно такую строку ждут браузеры, почтовые клиенты и API. Если вы получили совсем другую строку, исходный Base64 мог быть создан в другой кодировке, например Windows-1251.

Практические советы

  • В ссылках и JWT используйте вариант «Для URL»: он заменяет + и / на - и _ и убирает знаки =.
  • Если при декодировании появился список непонятных символов, вероятнее всего, внутри не текст, а файл: картинка, PDF или архив. Такие данные нужно сохранять в файл, а не читать на экране.
  • Не вставляйте в поле префикс data:image/png;base64,: нужна только сама строка после запятой.

Частые вопросы

Как декодировать Base64 в текст?

Нажмите «Декодировать» и вставьте строку Base64. Результат сразу появится ниже. Если строка повреждена, инструмент покажет, в какой позиции встретился недопустимый символ или что не хватает части строки.

Почему после декодирования вместо русских букв «кракозябры»?

Скорее всего, текст был закодирован не в UTF-8, а в Windows-1251 или KOI8-R, — так делали старые программы и почтовые системы. Этот инструмент кодирует и декодирует только UTF-8, как браузеры и современные API. Если Base64 содержит картинку или другой двоичный файл, инструмент сообщит, что это не текст.

Base64 — это шифрование?

Нет. Base64 — способ записать любые байты латинскими буквами, цифрами и знаками + и /. Раскодировать его может кто угодно, ключ не нужен. Не используйте Base64, чтобы «спрятать» пароли или персональные данные.

Что такое Base64 для URL?

В обычном Base64 есть символы + и /, а в конце — знаки =. В адресах они имеют особый смысл, поэтому в URL, JWT-токенах и именах файлов используют вариант, где + заменён на -, / — на _, а = в конце убираются. Включите «Для URL», чтобы получить такую строку; при декодировании инструмент понимает оба варианта.

Почему Base64 длиннее исходного текста?

Каждые 3 байта превращаются в 4 символа, поэтому объём растёт примерно на треть. Кириллица в UTF-8 занимает 2 байта на букву, поэтому русский текст в Base64 выглядит особенно длинным: «Привет» — 6 букв, 12 байт и 16 символов Base64.