Декодировано
Закодировано
О 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 символа |
|---|---|
| 000000 | A |
| 000001 | B |
| 000010 | C |
| 000011 | D |
| 000100 | E |
| 000101 | F |
| 000110 | G |
| 000111 | H |
| 001000 | I |
| 001001 | J |
| 001010 | K |
| 001011 | L |
| 001100 | M |
| 001101 | N |
| 001110 | O |
| 001111 | P |
| 010000 | Q |
| 010001 | R |
| 010010 | S |
| 010011 | T |
| 010100 | U |
| 010101 | V |
| 010110 | W |
| 010111 | X |
| 011000 | Y |
| 011001 | Z |
| 011010 | a |
| 011011 | b |
| 011100 | c |
| 011101 | d |
| 011110 | e |
| 011111 | f |
| 100000 | g |
| 100001 | h |
| 100010 | i |
| 100011 | j |
| 100100 | k |
| 100101 | l |
| 100110 | m |
| 100111 | n |
| 101000 | o |
| 101001 | p |
| 101010 | q |
| 101011 | r |
| 101100 | s |
| 101101 | t |
| 101110 | u |
| 101111 | v |
| 110000 | w |
| 110001 | x |
| 110010 | y |
| 110011 | z |
| 110100 | 0 |
| 110101 | 1 |
| 110110 | 2 |
| 110111 | 3 |
| 111000 | 4 |
| 111001 | 5 |
| 111010 | 6 |
| 111011 | 7 |
| 111100 | 8 |
| 111101 | 9 |
| 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>
Роль каждого элемента следующая.
| Элемент | Описание |
|---|---|
| Header | JSON-объект, содержащий метаданные, такие как тип токена (typ) и алгоритм подписи (alg) |
| Payload | JSON-объект, содержащий информацию, такую как идентификатор пользователя и срок действия |
| 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
}
Основные поля (утверждения), содержащиеся в заголовке и полезной нагрузке, следующие.
| Поле | Название | Описание |
|---|---|---|
| alg | Algorithm | Алгоритм, используемый для подписи или шифрования (например, HS256, RS256, ES256) |
| typ | Type | Тип токена (обычно «JWT») |
| cty | Content Type | Тип содержимого полезной нагрузки (для вложенных JWT — «JWT») |
| kid | Key ID | Идентификатор ключа, используемого для проверки подписи |
| jku | JWK Set URL | URL набора JWK, используемого для проверки подписи |
| x5u | X.509 URL | URL цепочки сертификатов X.509, используемой для проверки подписи |
| x5t | X.509 Certificate SHA-1 Thumbprint | Отпечаток SHA-1 сертификата X.509, используемого для проверки подписи |
| Поле | Название | Описание |
|---|---|---|
| iss | Issuer | Издатель токена |
| sub | Subject | Субъект токена (например, идентификатор пользователя) |
| aud | Audience | Получатель токена |
| exp | Expiration Time | Срок действия токена (временная метка Unix) |
| nbf | Not Before | Время, до которого токен недействителен (временная метка Unix) |
| iat | Issued At | Время выпуска токена (временная метка Unix) |
| jti | JWT ID | Уникальный идентификатор токена |