Перейти к содержимому

A–Z a–z 0–9 + / = · base64url

Кодирование и декодирование Base64

Base64 записывает байты текстом из 64 печатных символов: 5 байт слова "Hello" превращаются в SGVsbG8=. Введите текст или выберите файл, чтобы закодировать его, либо вставьте Base64, чтобы вернуть текст или скачать файл.

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

Scanned by NortonTM Safe Web

Коротко

Цена
Без оплаты
Аккаунт
Не нужен
Стандарты
RFC 4648 (Base64 и Base64url), RFC 2045 (MIME), RFC 2397 (data URI)
Изменение размера
4 символа на каждые 3 байта
Ограничение
10 MB для текста или файла
Загрузка
Нет — текст и файлы остаются во вкладке вашего браузера

Примеры Base64

Каждое значение ниже получено кодировщиком на этой странице. Сначала текст кодируется в UTF-8.

Текст в Base64 и Base64url
ТекстBase64Base64url без дополненияРазмер в UTF-8
HelloSGVsbG8=SGVsbG85 B
Hello, World!SGVsbG8sIFdvcmxkIQ==SGVsbG8sIFdvcmxkIQ13 B
GrüßeR3LDvMOfZQ==R3LDvMOfZQ7 B
€4oKs4oKs3 B
FB FF+/8=-_82 B
Тестовые векторы из RFC 4648
ВходBase64ДлинаСимволы дополнения
fZg==42
foZm8=41
fooZm9v40
foobZm9vYg==82
foobaZm9vYmE=81
foobarZm9vYmFy80

Как кодировать и декодировать Base64

1

Выберите направление

Выберите «Кодировать», чтобы превратить текст или файл в Base64, или «Декодировать», чтобы вернуть Base64 в исходный вид. Кнопка обмена переносит результат в противоположное направление.

2

Введите данные

Введите или вставьте текст либо перетащите файл размером до 10 MB. Для декодирования вставьте Base64 в стандартном или URL-безопасном алфавите, с дополнением = или без него, либо data URI.

3

Скопируйте результат

Скопируйте или скачайте результат. Если декодированные байты не являются текстом, страница показывает первые байты в шестнадцатеричном виде, называет тип файла, если знает его, и позволяет сохранить байты как файл.

Как работает Base64

Base64 (RFC 4648) делит входные данные на группы по 3 байта, то есть по 24 бита, и записывает каждую группу как 4 символа по 6 бит из 64-символьного алфавита: A–Z, a–z, 0–9, + и /. Поэтому результат примерно на треть больше входных данных. Если длина входных данных не кратна 3 байтам, знаки = дополняют конец до кратности 4 символам, так что 5 байт Hello дают 8 символов с одним = на конце.

Base64url, определённый в том же RFC, заменяет + на - и / на _, чтобы текст безопасно использовать в URL или имени файла, а такие форматы, как JWT, опускают дополнение =. Эта страница читает любой алфавит, с дополнением или без него, и игнорирует пробелы и переводы строк. Сначала текст преобразуется в UTF-8, поэтому € превращается в 3 байта E2 82 AC и в Base64 4oKs. Предел — 10 MB для текста или файла.

Вопросы о Base64

Как закодировать текст в Base64?

Введите или вставьте текст в режиме кодирования. Base64 появляется по мере ввода: Hello даёт SGVsbG8=. Сначала текст записывается в UTF-8, поэтому символы вне ASCII занимают больше одного байта: € — это 3 байта и даёт 4oKs.

Чем Base64 отличается от Base64url?

Base64url меняет два символа: - заменяет +, а _ заменяет /. Байты FB FF в Base64 записываются как +/8=, а в Base64url — как -_8=. URL-безопасная форма предназначена для URL, имён файлов и JWT и часто опускает дополнение =.

Почему Base64 заканчивается знаками =?

Это дополнение. Base64 работает группами по 3 байта и 4 символа. Если в последней группе 1 байт, её дополняют два знака =: f даёт Zg==. Если в ней 2 байта, дополняет один =: fo даёт Zm8=. Если длина кратна 3 байтам, дополнение не нужно: foo даёт Zm9v.

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

Нет. Base64 — это обратимое кодирование без ключа, поэтому любой может его декодировать, и оно не защищает данные. Оно позволяет безопасно помещать двоичные данные в текст, например в электронное письмо, JSON, XML или data URI.

Насколько Base64 увеличивает мои данные?

Примерно на треть: каждые 3 байта становятся 4 символами, так что 3000 байт дают 4000 символов. Переводы строк каждые 76 символов (MIME, RFC 2045) или каждые 64 символа (PEM, RFC 7468) добавляют ещё немного.

Почему при декодировании сказано, что байты не являются допустимым текстом UTF-8?

С самим Base64 всё в порядке, но байты внутри — не текст. Это может быть изображение, сжатый файл или другой двоичный формат. Тогда страница показывает первые 64 байта в шестнадцатеричном виде, называет тип файла, если знает его, и предлагает скачать байты.