Vai al decoder Base64

RFC 4648 §5 · base64url

Decodifica Base64URL, padding compreso.

Incolla Base64 URL-safe (da un JWT, un parametro URL, una challenge WebAuthn o l’API di Gmail) e viene decodificato riconvertendo - e _ e ripristinando il padding = mancante. Incolla un JSON Web Token intero e header e payload vengono mostrati in una tabella.

Aggiornato il · Funziona interamente nel tuo browser

Convertitore Decodifica Base64URL

0 caratteri
Risultato decodificato
Tipo: — Dimensione: 0 B
Opzioni
Generali
Opzioni di decodifica

Ctrl+Enter decodifica Ctrl+Shift+C copia il risultato Trascina un file sull’input per caricarlo

Come decodificare Base64URL

  1. 01

    Incolla il valore base64url

    Incolla una stringa Base64 URL-safe o un JWT completo. I caratteri - e _ e il padding mancante vengono gestiti automaticamente.

  2. 02

    Leggi il risultato decodificato

    I valori semplici vengono decodificati in testo o byte. Un JWT viene separato in header e payload, con iat, nbf ed exp mostrati come date.

  3. 03

    Copia o continua a decodificare

    Copia il JSON, formattalo oppure premi Invia all’input se il payload contiene un altro valore codificato.

Base64 e Base64URL a confronto

Il Base64 standard usa + e /, che hanno un significato negli URL e nei nomi di file, e completa con =, che in una query string va codificato con la percentuale. Il Base64URL, definito nella sezione 5 della RFC 4648, sostituisce solo questi caratteri perché il valore possa viaggiare in un URL senza alterazioni:

Differenze tra Base64 standard e Base64URL
Base64Base64URL
Valore 62+-
Valore 63/_
Padding= obbligatoriodi solito omesso
Definito inRFC 4648 §4RFC 4648 §5

Gli altri 62 caratteri sono identici, quindi la conversione è un semplice scambio di caratteri più il padding.

Ripristinare il padding mancante

Molti decoder rigorosi rifiutano un input senza padding. La regola per rimetterlo dipende solo dalla lunghezza della stringa modulo 4:

  • resto 0: nessun padding necessario;
  • resto 2: aggiungi ==;
  • resto 3: aggiungi =;
  • resto 1: impossibile in un Base64 valido, il valore è troncato.

Questo decoder applica la regola al posto tuo e segnala un valore troncato invece di restituire in silenzio dati senza senso.

Dove incontri il base64url

  • JSON Web Token: header, payload e firma sono tre segmenti base64url uniti da punti. La firma viene mostrata ma non verificata, perché servirebbe la chiave.
  • WebAuthn e passkey: challenge, ID delle credenziali e dati del client.
  • OAuth PKCE: il code_challenge è un digest SHA-256 in base64url.
  • API di Gmail: corpi dei messaggi e allegati sono codificati in base64url.
  • ID brevi e token in URL, cookie e nomi di file.

Decodificare base64url nel codice

# Python: urlsafe_b64decode still needs the padding back
import base64
def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

// Node.js 16+
Buffer.from(token, "base64url").toString("utf8");

// Go
base64.RawURLEncoding.DecodeString(s)

// Java 8+: the URL decoder accepts unpadded input
Base64.getUrlDecoder().decode(s);

Per il Base64 standard e altri linguaggi, consulta la pagina principale Decodifica Base64.

Altri decoder

Altri modi per decodificare Base64.

Domande

Decodifica Base64URL: domande frequenti.

Come decodifico Base64URL?

Sostituisci - con + e _ con /, aggiungi padding = finché la lunghezza non è un multiplo di quattro, poi decodifica come un normale Base64. Questa pagina fa tutti e tre i passaggi automaticamente: incolla il valore e il risultato appare subito.

Base64URL è la stessa cosa della codifica URL?

No. La codifica URL (percent-encoding) fa l’escape di singoli caratteri come %XX. Base64URL è una variante di Base64 che converte i byte in un alfabeto sicuro per gli URL. Se un valore contiene %2B o %3D, è Base64 codificato con percentuale: decodifica prima la percentuale.

Posso decodificare un JWT con questo strumento?

Sì. Incolla il token completo e header e payload vengono decodificati da base64url e mostrati in una tabella, con i timestamp convertiti in date. La firma viene mostrata ma non verificata, perché richiede la chiave segreta o pubblica.

Perché Python restituisce “Incorrect padding” con il base64url?

base64.urlsafe_b64decode si aspetta il padding = che il base64url di solito omette. Aggiungi "=" * (-len(s) % 4) alla stringa prima di decodificare, come nell’esempio di questa pagina.