Кодировщик / Декодировщик Base64
Бесплатный онлайн кодировщик и декодировщик Base64. Кодируйте текст или файлы в Base64 или декодируйте обратно.
Перетащите файл или Обзор
Приватно и безопасно
Обработка полностью локальна. Данные не загружаются на сервер.
Поддержка файлов
Легко конвертируйте изображения, документы и бинарные файлы в Base64.
Офлайн-режим
Работает без интернета после загрузки.
Часто задаваемые вопросы
Что такое кодирование Base64 и для чего оно используется?
Base64 — это схема кодирования бинарных данных в текст, которая преобразует двоичные данные в строку ASCII, используя 64 символа (A-Z, a-z, 0-9, +, /). В основном применяется для передачи бинарных данных по текстовым протоколам, таким как HTTP, SMTP, или в составе JSON-нагрузок. Типичные сценарии использования включают вложения электронной почты через MIME, встраивание изображений в HTML и CSS в виде data URL, кодирование данных в JSON Web Tokens (JWT), а также хранение бинарных данных в текстовых колонках баз данных.
Является ли Base64 шифрованием? Безопасно ли оно?
Нет. Base64 — это схема кодирования, а не шифрования. Любой, кто получит строку в формате Base64, может мгновенно декодировать её обратно в исходные данные без необходимости в ключе, пароле или секрете. Она не обеспечивает ни конфиденциальности, ни целостности, ни аутентификации. Рассматривайте это как способ представления одних и тех же данных в другом формате — подобно переводу с английского на азбуку Морзе. Если вам нужно защитить конфиденциальные данные, сначала используйте надёжный алгоритм шифрования (например, AES), а затем, при необходимости, закодируйте зашифрованные байты с помощью Base64 для передачи.
Почему Base64 иногда заканчивается на = или ==?
Символ = — это дополнение (padding). Base64 обрабатывает входные данные группами по 3 байта (24 бита), выдавая 4 символа Base64 на каждую группу. Если длина входных данных не кратна 3 байтам, кодирование добавляет символы дополнения =, чтобы сделать вывод кратным 4 символам. Один = добавляется, когда остаётся 2 байта, а два символа = — когда остаётся только 1 байт. Например, «Man» (3 байта) кодируется как «TWFu» без дополнения, а «Ma» (2 байта) — как «TWE=», и «M» (1 байт) — как «TQ==».
Увеличивает ли Base64 размер данных? Сколько накладных расходов оно добавляет?
Да, кодирование Base64 увеличивает размер данных примерно на 33%. На каждые 3 байта бинарного ввода приходится 4 байта вывода, плюс опциональное дополнение. Таким образом, бинарный файл размером 3 МБ становится примерно 4 МБ после кодирования в Base64. Это компромисс за возможность передачи бинарных данных по каналам, предназначенным только для текста. По сравнению с другими схемами кодирования бинарных данных в текст, Base64 относительно эффективно — например, шестнадцатеричное кодирование добавляет 100% накладных расходов.
В чём разница между стандартным Base64 и Base64url?
Стандартный Base64 использует + и / в своём алфавите и = для дополнения. Base64url (URL-безопасный Base64) заменяет + на - и / на _, и обычно опускает дополнение. Это делает Base64url безопасным для использования в URL, параметрах запросов и именах файлов без дополнительного процентного кодирования. Base64url определён в RFC 4648 и широко применяется в JSON Web Tokens (JWT), OAuth-токенах и веб-API. Например, стандартная строка Base64 вида Pj4+Pz8/Pw== превращается в Pj4-Pz8_Pw в Base64url.
Что такое data URL в Base64 и как он используется в HTML и CSS?
Data URL — это схема URI, которая встраивает данные непосредственно в веб-документ. Для изображений формат выглядит так: data:image/png;base64,iVBORw0KGgo.... Его можно использовать вместо URL-адреса файла в HTML-тегах <img> и CSS-свойствах background-image. Data URL устраняют необходимость в отдельном HTTP-запросе для загрузки изображения, что может повысить производительность для небольших ресурсов (обычно до 10 КБ). Однако они увеличивают размер HTML/CSS примерно на 33% и не позволяют браузеру кэшировать изображение независимо.
Можно ли преобразовать любой файл в Base64?
Да — любые бинарные данные, будь то текст, изображение, аудио, видео, PDF или сжатый архив, можно закодировать в Base64. Процесс одинаков: прочитать сырые байты файла и применить алгоритм кодирования Base64. При декодировании строки Base64 вы получаете точно такие же исходные байты. Именно так работают вложения электронной почты — бинарный файл кодируется в Base64 перед отправкой по SMTP и декодируется обратно в исходный файл на стороне получателя.
Как обрабатывать символы Юникода (например, эмодзи или китайский текст) при кодировании Base64 в JavaScript?
Встроенная функция btoa() работает только с символами Latin-1 (однобайтовыми символами). Для строк в Юникоде, содержащих эмодзи, китайские иероглифы или другие многобайтовые символы, необходимо сначала преобразовать их в байты с помощью API TextEncoder: В Node.js класс Buffer обрабатывает Юникод нативно: Buffer.from('Hello 你好 🚀').toString('base64') работает без какой-либо специальной обработки.