Объяснение
Как работает Кодировщик Base64
Base64 — это способ кодирования (определён в RFC 4648), который преобразует последовательности байтов в последовательность из 64 печатаемых символов ASCII (A-Z, a-z, 0-9, +, /). Он кодирует по 3 байта (24 бита) в 4 символа (по 6 бит) и использует = как дополнение в конце.
Типичные применения — вложения электронной почты (MIME, RFC 2045), data-URL для изображений (data:image/png;base64,...), токены JWT, сертификаты PEM, HTTP Basic Authentication, JSON-API и файлы конфигурации. При этом данный инструмент обрабатывает только текст UTF-8, а не файлы или произвольные двоичные данные. Вывод требует четыре символа на каждую начатую группу из трёх входных байтов; дополнение влияет на короткий ввод.
Важно: Base64 не является шифрованием. Кодирование может обратить любой без ключа. Данные, закодированные в Base64, столь же читаемы, как исходный текст, — просто представлены в другом формате.
Типичные ошибки
- Путать Base64 с шифрованием: Base64 не обеспечивает никакой безопасности. Любой может декодировать закодированный текст без ключа. Для приватности используйте настоящее шифрование (AES, ChaCha20).
- Забывать про небезопасные для URL символы: Стандартный Base64 содержит + и /, которые имеют особое значение в URL. Для URL-контекстов используйте Base64URL (с - и _) или URL-кодирование.
- Путать символы текста с байтами: Символы Unicode могут занимать несколько байтов UTF-8; поэтому длину вывода нельзя вывести из количества символов JavaScript.
- «Прятать» конфиденциальные данные в Base64: Кодирование паролей, ключей API или персональных данных в Base64 не даёт защиты. В логах, URL или конфигурациях они тривиально читаемы.
Ограничения этого инструмента
- Нет приватности — Base64 читаем, а не зашифрован.
- Четыре символа вывода на каждую начатую группу из трёх входных байтов; дополнение влияет на короткий ввод.
- Только текстовый ввод/вывод — без кодирования файлов (изображения, PDF и т. д.).
- Нет режима Base64URL (RFC 4648 §5) — только стандартный Base64 с + и /.
- Декодирование двоичных данных (не UTF-8) завершается ошибкой, так как поддерживается только текстовый вывод.
Источники
- RFC 4648: The Base16, Base32, and Base64 Data Encodings. IETF, 2006. Определяет стандартный Base64 и Base64URL.
- RFC 2045: MIME Part One — Format of Internet Message Bodies. Определяет Base64 для вложений электронной почты (Content-Transfer-Encoding).
- WHATWG HTML Standard: Определение btoa() и atob() для преобразований Base64 в браузере.
- WHATWG Encoding Standard: Определение TextEncoder, UTF-8 и фатального декодирования TextDecoder.