Decodex

DECODEX · BASE64 · UTF-8

Base64 и Base64URL: различия и примеры

Сравнение символов + / и - _, заполнения и проблем с параметрами URL на примерах UTF-8.

Base64URL представляет те же байты, что и Base64, но заменяет два символа. Decodex декодирует текст UTF-8 из обоих форматов. Ни один из них не является шифрованием.

Алфавит и заполнение

Base64 использует + и /, а Base64URL — - и _. Буквы и цифры не меняются. Сохранение знака заполнения = зависит от протокола. По строке только из букв и цифр нельзя определить, какой алфавит использован.

Осторожно с параметрами URL

В application/x-www-form-urlencoded знак + может превратиться в пробел. Создавайте параметры через URLSearchParams. Если + уже потерян, декодер не может восстановить его достоверно. 😀 даёт 8J+YgA== в Base64 и 8J-YgA== в Base64URL.

Преобразование и проверка

После кодирования замените + на - и / на _. Удаляйте конечные = только если протокол это разрешает. Decodex создаёт обычный Base64 с заполнением и принимает Base64URL при декодировании. Чтение сегмента JWT не проверяет подпись, срок действия или права доступа.

Проверить пример

ФорматТекстBase64
Base64😀8J+YgA==
Base64URL😀8J-YgA==
Base64URL (JWT)😀8J-YgA

Проверить пример →

Base64 → UTF-8 · UTF-8 → Base64

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

Всегда ли Base64URL исключает =?

Нет. Следуйте формату принимающей системы. В Decodex строка 8J-YgA без заполнения также даёт 😀.

Источники

Другие руководства Base64