0

Décodé

Base64

Encodé

Base64
Saut de ligne

À propos de Base64

Base64 est un schéma de codage utilisant des caractères ASCII imprimables sur 7 bits. Il est principalement utilisé dans les e-mails pour transférer des données 8 bits sur un chemin de données 7 bits.

Dans Base64, les données sont divisées en groupes de 6 bits et converties en caractères alphanumériques (A-Z, a-z, 0-9) et symboles (+, /). La conversion se fait par blocs de 4 caractères, et si le dernier bloc comporte moins de 4 caractères, il est rempli avec des signes égal (=).

De plus, la RFC 1421 (PEM : Privacy-Enhanced Mail) spécifie un saut de ligne tous les 64 caractères, et la RFC 2045 (MIME) tous les 76 caractères.

Le tableau de conversion en caractères Base64 est le suivant.

Données 6 bitsCaractère Base64
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/

Par exemple, la conversion de "Hello" en Base64 donne ce qui suit.

1. Mettre en représentation binaire.

01001000 01100101 01101100 01101100 01101111  (pour US-ASCII / UTF-8)

2. Diviser par 6 bits. S'il y a moins de 6 bits, remplir la fin avec "0".

010010 000110 010101 101100 011011 000110 111100

3. Convertir en caractères à l'aide du tableau de conversion. Convertir tous les 4 caractères, et s'il y a moins de 4 caractères, remplir la fin avec "=".

SGVs bG8=

4. Concaténer tous les caractères pour obtenir le résultat de la conversion Base64.

SGVsbG8=

Format d'en-tête de message MIME pour les e-mails (RFC 2047)

DenCode prend également en charge le décodage des formats d'en-tête de message MIME (RFC 2047) tels que ci-dessous. Ce format est utilisé lorsque l'objet ou le destinataire d'un e-mail contient des caractères non ASCII.

Subject: =?UTF-8?B?44K144Oz44OX44Or?=

Le résultat après décodage est le suivant.

Subject: サンプル

JSON Web Token (RFC 7519)

JSON Web Token (JWT) est un format de jeton qui représente de manière compacte des données JSON en utilisant l'encodage Base64url. Il est largement utilisé pour l'authentification et l'autorisation dans les applications web et est standardisé dans la RFC 7519.

Un JWT est composé de trois éléments séparés par des points (.).

<Header>.<Payload>.<Signature>

Le rôle de chaque élément est le suivant.

ÉlémentDescription
HeaderUn objet JSON contenant des métadonnées telles que le type de jeton (typ) et l'algorithme de signature (alg)
PayloadUn objet JSON contenant des informations telles que l'identifiant utilisateur et la date d'expiration
SignatureDonnées de signature utilisées pour détecter la falsification de l'en-tête et de la charge utile

L'en-tête et la charge utile sont chacun encodés en Base64url. Base64url remplace « + » par « - » et « / » par « _ », et omet le remplissage « = » par rapport au Base64 standard (RFC 4648). Cela permet de les inclure en toute sécurité dans les URLs et les en-têtes HTTP.

Par exemple, le décodage du JWT suivant donne l'en-tête et la charge utile au format JSON.

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

Les principaux champs (claims) contenus dans l'en-tête et la charge utile sont les suivants.

ChampNomDescription
algAlgorithmAlgorithme utilisé pour la signature ou le chiffrement (p. ex. HS256, RS256, ES256)
typTypeType de jeton (généralement « JWT »)
ctyContent TypeType de contenu de la charge utile (« JWT » pour les JWT imbriqués)
kidKey IDIdentifiant de la clé utilisée pour la vérification de signature
jkuJWK Set URLURL du jeu JWK utilisé pour la vérification de signature
x5uX.509 URLURL de la chaîne de certificats X.509 utilisée pour la vérification de signature
x5tX.509 Certificate SHA-1 ThumbprintEmpreinte SHA-1 du certificat X.509 utilisé pour la vérification de signature
ChampNomDescription
issIssuerÉmetteur du jeton
subSubjectSujet du jeton (p. ex. identifiant utilisateur)
audAudienceDestinataire du jeton
expExpiration TimeDate d'expiration du jeton (horodatage Unix)
nbfNot BeforeDate avant laquelle le jeton n'est pas valide (horodatage Unix)
iatIssued AtDate d'émission du jeton (horodatage Unix)
jtiJWT IDIdentifiant unique du jeton