> base64url | jwt | url-sicuro <
// Base64url - variante Base64 sicura per URL e nomi file senza padding
Compatibile con URL
Nessun carattere speciale di URL: sicuro per parametri di query e percorsi.
Standard JWT
Utilizzato nei JSON Web Token e nelle specifiche OAuth 2.0.
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
| Base64 | Base64url |
|---|---|
| + | - |
| / | _ |
| = | — |
// 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.