Что такое кодирование Base64? Полное объяснение
Быстрый ответ
Кодирование Base64 преобразует бинарные данные в текст с 64 печатными символами (A-Z, a-z, 0-9, +, /). Каждые 3 байта input становятся 4 символами Base64. Base64 обратимо (не шифрование) и увеличивает размер данных ~33%. Используйте наш бесплатный Base64 Encoder и Decoder.
Введение
Base64 — схема кодирования binary-to-text, преобразующая бинарные данные в ASCII-строку с 64 печатными символами. Определена RFC 4648 и широко используется для кодирования данных, передаваемых через текстовые媒介 —вложения email (MIME), Data URLs, части JWT-токена и JSON-payload с бинарными данными. Base64 — кодирование, не шифрование —полностью обратимо и не требует ключа.
Шаг за шагом
-
Понимание набора символов
Base64 использует 64 символа: A–Z (26), a–z (26), 0–9 (10), + и / (2). Символ = используется для заполнения, когда входная длина не кратна 3. Безопасный вариант URL заменяет + на - и / на _ и опускает заполнение.
-
Узнайте, как работает кодирование
Base64 обрабатывает ввод блоками по 3 байта (24 бита). Каждый 24-битный блок разделен на четыре 6-битные группы. Каждое 6-битное значение (0–63) соответствует одному из 64 символов. Если введенное число не кратно 3, добавляется дополнение (=): 1 байт ввода → 2 символа Base64 + ==, 2 байта → 3 символа + =.
-
Поймите размер накладных расходов
Base64 увеличивает размер данных примерно на 33% — каждые 3 байта становятся 4 символами. Файл размером 1 МБ становится ~ 1,33 МБ при кодировании Base64. Эти накладные расходы являются компромиссом для совместимости только с текстом.
-
Отличие кодирования от шифрования
Base64 — это кодирование, а не шифрование. Это обратимо без ключа — любой может его расшифровать. Base64 не обеспечивает конфиденциальности; он только преобразует двоичный код в текст для транспортировки. Никогда не используйте Base64 для хранения паролей или секретов.
Примеры
Кодировать текст
Вход: Hello, World!
Выход: SGVsbG8sIFdvcmxkIQ==
Кодировать двоичные данные (показаны в шестнадцатеричном формате)
Вход: Байты: 0x00 0x01 0x02
Выход: AAEC
URL-безопасно Base64 (стиль JWT)
Вход: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)
Выход: Используется в токенах JWT и параметрах URL.
Распространенные проблемы
- Рассматривая Base64 как шифрование, —Base64 обратимо без ключа. Расшифровать его сможет любой желающий. Никогда не используйте его для защиты конфиденциальных данных.
- Символы, отличные от ASCII, — наивный вызов btoa() в Юникоде. Используйте TextEncoder + btoa(unescape(encodeURIComponent(text))) или инструмент с поддержкой UTF-8.
- Удаление заполнения — заполнение = является частью кодировки. Его удаление нарушает декодирование (хотя некоторые декодеры могут его восстановить).
- Накладные расходы на размер —Base64 увеличивает размер данных примерно на 33%. Для больших файлов это важно; подумайте, необходимо ли кодирование.
Советы
- Используйте Base64 для данных URLs, чтобы вставлять небольшие изображения в HTML/CSS без отдельного запроса HTTP.
- Используйте URL-безопасный Base64 (замените + на -, / на _, удалите заполнение) для токенов URLs и JWT.
- Base64 не является шифрованием — используйте его для обеспечения транспортной совместимости, а не для обеспечения конфиденциальности.
- Используйте наш кодировщик и декодер Base64 для мгновенного и конфиденциального преобразования в вашем браузере.