С чего начать Первые шаги трек · 15 ступеней
Linux Labs

Base64 и URL-кодирование

Base64, base64url и URL-кодирование в обе стороны, с кириллицей и эмодзи.

Формат
Направление
Что кодируем
Результат

    

Напечатай или вставь текст — результат меняется на лету.

Считается в браузере, на сервер ничего не уходит

Практика на машине

Лаба «Магазин после перевыпуска»

средняя ~25 мин ступень 5 трека «Веб-стек»

Открыть лабу

В терминале Linux

bash
echo -n 'Привет' | base64 # 0J/RgNC40LLQtdGC echo '0J/RgNC40LLQtdGC' | base64 -d # Привет base64 -w0 file.bin > file.b64 # файл в одну строку curl -G example.com --data-urlencode 'q=права доступа' # параметр в %-кодировке

Без -n echo добавит перевод строки, и Base64 выйдет другим.

УчтиBase64 — не шифрование: строку раскодирует любой, поэтому прятать в ней пароли бессмысленно.

Часть адреса или адрес целиком

Значение параметра кодируй как «часть адреса»: / ? & = тоже станут %XX. «Адрес целиком» их оставляет и кодирует только пробелы, кириллицу и кавычки — так чинят ссылку. Пробел как + — только для данных HTML-форм.

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

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

Нет: это только запись байтов, декодирует кто угодно. Секреты шифруют (gpg, openssl enc), а Base64 применяют уже к результату.

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

Внутри не текст в UTF-8: картинка, архив, ключ или текст в CP1251. Двоичный файл декодируй в терминале: base64 -d data.b64 > file.bin.

Зачем в конце знаки «=»?

Base64 кодирует байты тройками, и = добивает неполную тройку до четырёх символов. В base64url их обычно отбрасывают.

Загрузка…