Base64 в одном предложении
Base64 - это кодирование двоичных данных в текст: произвольные байты представляются алфавитом из 64 символов. Формат нужен там, где данные проходят через текстовые каналы: JSON, email, HTTP-заголовки, Data URI и некоторые токены.
Это не шифрование. Строку Base64 можно раскодировать без пароля, поэтому так нельзя защищать секреты.
Как распознать Base64
Стандартный Base64 использует латинские буквы в верхнем и нижнем регистре, цифры, +, / и необязательные знаки = в конце. Длина обычно кратна четырем, если не считать переносы строк и пробелы.
URL-безопасный вариант Base64URL часто заменяет + и / на - и _. Внешний вид - только подсказка: надежная проверка состоит в декодировании и анализе результата.
Декодируйте в безопасном порядке
Сначала сохраните исходную строку. Уберите безвредные пробелы и переносы, проверьте алфавит и padding, затем декодируйте строку в байты. После этого интерпретируйте байты как UTF-8 текст, JSON, изображение, сертификат, сжатые данные или другой формат.
Если результат не читается, это не обязательно ошибка. Внутри могут быть бинарные данные, сжатый поток или зашифрованное содержимое, требующее отдельного шага.
Что происходит внутри
Base64 берет входные байты группами по три. Эти 24 бита делятся на четыре значения по 6 бит, и каждое значение выбирает символ из алфавита Base64. Слово Man превращается в TWFu.
Проверенный пример для текста: Hello, Morse! кодируется как SGVsbG8sIE1vcnNlIQ== и обратно декодируется в тот же UTF-8 текст.
Padding и Unicode
Если длина входа не делится на три, Base64 добавляет padding. Один оставшийся байт дает два символа =, два оставшихся байта - один =. Padding сообщает декодеру, сколько байтов восстановить из последней группы.
Base64 кодирует байты, а не абстрактные символы. Текст Café ☕ сначала превращается в UTF-8 байты, а они кодируются как Q2Fmw6kg4piV.
Где используется и где граница безопасности
Base64 часто встречается в API, JSON-полях, email-вложениях, Basic Auth, частях JWT, Data URI для изображений, сертификатах и конфигурациях. Во всех этих случаях он решает транспортную задачу: делает байты безопасными для текстового канала.
Не называйте Base64 «дешифрованием» и не храните пароли, API-ключи или персональные данные только в Base64. Если нужна конфиденциальность, сначала используйте настоящее шифрование.