0

Декодировано

Base64

Закодировано

Base64
Разрыв строки

О Base64

Base64 - это метод кодирования, использующий 7-битные печатаемые символы ASCII. В основном используется в электронной почте для передачи 8-битных данных по 7-битному пути.

В Base64 данные делятся на 6 бит и преобразуются в буквенно-цифровые символы (A-Z, a-z, 0-9) и символы (+, /). Преобразует каждые 4 символа, а если последний меньше 4 символов, заполните его символом равенства (=).

Кроме того, RFC 1421 (PEM: Privacy-Enhanced Mail) предусматривает перерыв каждые 64 символа, а RFC 2045 (MIME) предусматривает перерыв каждые 76 символов.

Таблица преобразования для символов Base64 выглядит следующим образом.

5-битные данныеBase32 символа
000000A
000001B
000010C
000011D
000100E
000101F
000110G
000111H
001000I
001001J
001010K
001011L
001100M
001101N
001110O
001111P
010000Q
010001R
010010S
010011T
010100U
010101V
010110W
010111X
011000Y
011001Z
011010a
011011b
011100c
011101d
011110e
011111f
100000g
100001h
100010i
100011j
100100k
100101l
100110m
100111n
101000o
101001p
101010q
101011r
101100s
101101t
101110u
101111v
110000w
110001x
110010y
110011z
1101000
1101011
1101102
1101113
1110004
1110015
1110106
1110117
1111008
1111019
111110+
111111/

Например, если вы конвертируете «Hello» с помощью Base64, это будет следующим образом.

1. Преобразуйте это в двоичное представление.

01001000 01100101 01101100 01101100 01101111  (Для US-ASCII / UTF-8)

2. Разделите на группы по 6 бит. Если последняя группа меньше 6 бит, дополните ее "0" в конце.

010010 000110 010101 101100 011011 000110 111100

3. Преобразуйте в символы с помощью таблицы преобразования. Преобразуйте каждые 4 символа, и если оно меньше 4 символов, дополните конец знаком «=».

SGVs bG8=

4. Соедините все символы, чтобы получить результат преобразования Base64.

SGVsbG8=

Формат заголовка сообщения электронной почты MIME (RFC 2047)

DenCode также поддерживает декодирование формата заголовка сообщения MIME (RFC 2047), как показано ниже. Этот формат используется, когда тема, получатель и т. Д. Электронного письма содержат символы, отличные от ASCII.

Subject: =?UTF-8?B?0L/RgNC40LzQtdGA?=

Результат после расшифровки следующий.

Subject: пример

JSON Web Token (RFC 7519)

JSON Web Token (JWT) — это формат токена, который компактно представляет данные JSON с помощью кодирования Base64url. Широко используется для аутентификации и авторизации в веб-приложениях и стандартизирован в RFC 7519.

JWT состоит из трёх элементов, разделённых точками (.).

<Header>.<Payload>.<Signature>

Роль каждого элемента следующая.

ЭлементОписание
HeaderJSON-объект, содержащий метаданные, такие как тип токена (typ) и алгоритм подписи (alg)
PayloadJSON-объект, содержащий информацию, такую как идентификатор пользователя и срок действия
SignatureДанные подписи, используемые для обнаружения подделки заголовка и полезной нагрузки

Заголовок и полезная нагрузка кодируются в Base64url. Base64url заменяет «+» на «-» и «/» на «_», а также опускает заполнение «=» по сравнению со стандартным Base64 (RFC 4648). Это позволяет безопасно включать их в URL-адреса и HTTP-заголовки.

Например, декодирование следующего JWT даёт заголовок и полезную нагрузку в формате JSON.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
  "alg": "HS256",
  "typ": "JWT"
}
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Основные поля (утверждения), содержащиеся в заголовке и полезной нагрузке, следующие.

ПолеНазваниеОписание
algAlgorithmАлгоритм, используемый для подписи или шифрования (например, HS256, RS256, ES256)
typTypeТип токена (обычно «JWT»)
ctyContent TypeТип содержимого полезной нагрузки (для вложенных JWT — «JWT»)
kidKey IDИдентификатор ключа, используемого для проверки подписи
jkuJWK Set URLURL набора JWK, используемого для проверки подписи
x5uX.509 URLURL цепочки сертификатов X.509, используемой для проверки подписи
x5tX.509 Certificate SHA-1 ThumbprintОтпечаток SHA-1 сертификата X.509, используемого для проверки подписи
ПолеНазваниеОписание
issIssuerИздатель токена
subSubjectСубъект токена (например, идентификатор пользователя)
audAudienceПолучатель токена
expExpiration TimeСрок действия токена (временная метка Unix)
nbfNot BeforeВремя, до которого токен недействителен (временная метка Unix)
iatIssued AtВремя выпуска токена (временная метка Unix)
jtiJWT IDУникальный идентификатор токена