codifica | decodifica | comprimi

> base64url | jwt | url-sicuro <

// Base64url - variante Base64 sicura per URL e nomi file senza padding

[URL-SAFE]

Compatibile con URL

Nessun carattere speciale di URL: sicuro per parametri di query e percorsi.

[JWT]

Standard JWT

Utilizzato nei JSON Web Token e nelle specifiche OAuth 2.0.

[NO-PADDING]

Padding opzionale

I caratteri di padding (=) possono essere omessi per URL più puliti.

>> informazioni tecniche

Come funziona Base64url:

Base64url è una variante di Base64 che sostituisce "+" con "-" e "/" con "_", rendendola sicura per URL e nomi file. Il carattere di padding "=" è spesso omesso perché può causare problemi nelle URL.

Confronto:

Base64: SGVsbG8+Pw== Base64url: SGVsbG8-Pw

Perché usare Base64url:

  • >Token JWT
  • >Flussi OAuth 2.0
  • >Parametri di query nelle URL
  • >Codifica dei nomi file
  • >Firme delle API web

>> domande frequenti

Che cos'è Base64url?

Base64url è una variante della codifica Base64 sicura per URL e nomi file. Sostituisce "+" con "-", "/" con "_" e può rimuovere i caratteri di padding "=" per evitare problemi di codifica nelle URL.

Perché non usare la Base64 normale nelle URL?

La Base64 normale utilizza i caratteri "+", "/" e "=" che hanno significati speciali nelle URL. "+" può essere interpretato come spazio, "/" è un separatore di percorso e "=" viene usato per i parametri, causando problemi di parsing.

Dove viene usata Base64url?

Base64url è ampiamente utilizzata nei JWT (JSON Web Token), nei codici di autorizzazione OAuth 2.0, nelle asserzioni SAML e in qualsiasi API che debba trasmettere dati binari in URL o intestazioni HTTP.

Il padding è obbligatorio in Base64url?

No, il padding in Base64url è opzionale. Molte implementazioni lo omettono perché la lunghezza può essere calcolata. In particolare, le specifiche JWT richiedono l'assenza di padding per URL più pulite.

// Differenze rispetto a Base64

Base64Base64url
+-
/_
=—

// Base64url nel codice

JavaScript   btoa(s).replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,'')
Node.js      Buffer.from(s).toString('base64url')
Python       base64.urlsafe_b64encode(b).rstrip(b'=')
Go           base64.RawURLEncoding.EncodeToString(b)
Padding      s + '=' * (-len(s) % 4)

>> Altre domande

D: Perché Base64url omette il «=»?

R: Il padding si deduce dalla lunghezza e «=» ha un significato speciale in URL e query string. Per questo JWT (RFC 7515) e molte API scrivono Base64url senza padding.

D: Come ripristino il padding prima di decodificare?

R: Guarda la lunghezza modulo 4: resto 2 → aggiungi ==, resto 3 → aggiungi =, resto 0 → niente. Un resto 1 non è mai valido. Sostituisci anche - con + e _ con /.

D: Base64url è crittografia?

R: No, è solo una codifica: chiunque può invertirla. Il contenuto del payload di un JWT è leggibile, quindi non inserirvi segreti.

Altre lingue