0

Decodificato

Base64

Codificato

Base64
Interruzione di riga

Informazioni su Base64

Base64 è uno schema di codifica che utilizza caratteri ASCII stampabili a 7 bit. È utilizzato principalmente nelle e-mail per trasferire dati a 8 bit su percorsi a 7 bit.

Base64 divide i dati in blocchi di 6 bit e li converte in caratteri alfanumerici (A-Z, a-z, 0-9) e simboli (+, /). Converte ogni 4 caratteri e, se l'ultimo blocco è inferiore a 4 caratteri, riempie con il simbolo uguale (=).

Inoltre, RFC 1421 (PEM) specifica un ritorno a capo ogni 64 caratteri, e RFC 2045 (MIME) specifica un ritorno a capo ogni 76 caratteri.

La tabella di conversione dei caratteri Base64 è la seguente:

Dati a 6 bitCarattere 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/

Ad esempio, la conversione di "Hello" in Base64 è la seguente.

1. Rappresentazione binaria.

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

2. Dividi ogni 6 bit. Se meno di 6 bit, riempi con "0" alla fine.

010010 000110 010101 101100 011011 000110 111100

3. Converti in caratteri usando la tabella di conversione. Converti ogni 4 caratteri; se meno di 4, riempi con "=" alla fine.

SGVs bG8=

4. Unisci tutti i caratteri per il risultato finale.

SGVsbG8=

Formato dell'intestazione del messaggio MIME (RFC 2047)

DenCode supporta anche la decodifica del formato di intestazione dei messaggi MIME (RFC 2047). Questo formato è utilizzato quando l'oggetto o il destinatario dell'e-mail contiene caratteri non ASCII.

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

Il risultato dopo la decodifica è il seguente:

Subject: サンプル

JSON Web Token (RFC 7519)

JSON Web Token (JWT) è un formato di token che rappresenta in modo compatto i dati JSON utilizzando la codifica Base64url. È ampiamente utilizzato per l'autenticazione e l'autorizzazione nelle applicazioni web ed è standardizzato nella RFC 7519.

Un JWT è composto da tre elementi separati da punti (.).

<Header>.<Payload>.<Signature>

Il ruolo di ciascun elemento è il seguente.

ElementoDescrizione
HeaderUn oggetto JSON contenente metadati come il tipo di token (typ) e l'algoritmo di firma (alg)
PayloadUn oggetto JSON contenente informazioni come l'ID utente e la scadenza
SignatureDati di firma utilizzati per rilevare la manomissione dell'intestazione e del payload

L'intestazione e il payload sono ciascuno codificati in Base64url. Base64url sostituisce "+" con "-" e "/" con "_", e omette il padding "=" rispetto al Base64 standard (RFC 4648). Ciò consente di includerli in modo sicuro negli URL e nelle intestazioni HTTP.

Ad esempio, decodificando il seguente JWT si ottengono l'intestazione e il payload in formato JSON.

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

I principali campi (claim) contenuti nell'intestazione e nel payload sono i seguenti.

CampoNomeDescrizione
algAlgorithmAlgoritmo utilizzato per la firma o la crittografia (es. HS256, RS256, ES256)
typTypeTipo di token (solitamente "JWT")
ctyContent TypeTipo di contenuto del payload ("JWT" per JWT annidati)
kidKey IDIdentificatore della chiave utilizzata per la verifica della firma
jkuJWK Set URLURL del set JWK utilizzato per la verifica della firma
x5uX.509 URLURL della catena di certificati X.509 utilizzata per la verifica della firma
x5tX.509 Certificate SHA-1 ThumbprintImpronta SHA-1 del certificato X.509 utilizzato per la verifica della firma
CampoNomeDescrizione
issIssuerEmittente del token
subSubjectSoggetto del token (es. ID utente)
audAudienceDestinatario del token
expExpiration TimeScadenza del token (timestamp Unix)
nbfNot BeforeData prima della quale il token non è valido (timestamp Unix)
iatIssued AtData di emissione del token (timestamp Unix)
jtiJWT IDIdentificatore univoco del token