Decodex

DECODEX · BASE64 · UTF-8

Padding Base64: perché = oppure ==?

Capire il padding Base64 e correggere le lunghezze non valide: esempi con Zg, Zg= e Zg==.

Base64 trasforma gruppi di tre byte in quattro caratteri. Il segno = completa l’ultimo gruppo quando mancano byte. È un indicatore di padding e non una lettera del testo originale.

Contare i byte

Un byte residuo richiede ==, due richiedono = e tre non richiedono padding. f diventa Zg==, fo diventa Zm8= e foo diventa Zm9v. Conta i byte UTF-8: una lettera accentata o un emoji può occupare più byte.

Ripristinare il padding assente

Dopo aver rimosso gli spazi, una lunghezza modulo 4 di 2 può ricevere == e una di 3 può ricevere =. Un resto di 1 indica una lunghezza impossibile: aggiungere = non risolve il problema. Controlla anche l’alfabeto e il protocollo.

Distinguere omissione ed errore

Decodex accetta Zg e Zg==, ma rifiuta Zg= perché il padding presente è incompleto. Rifiuta anche A=AA e Zg===. Non cancellare caratteri arbitrariamente per nascondere dati corrotti. Alcuni protocolli richiedono il padding esatto, altri lo omettono.

Prova questo esempio

TestoUTF-8 bytesBase64Padding
f1Zg====
fo2Zm8==
foo3Zm9v—

Prova questo esempio →

Base64 → UTF-8 · UTF-8 → Base64

Domande frequenti

Una stringa senza = è sempre errata?

No. Quando la quantità di byte è un multiplo di tre, il padding non serve. Anche alcuni protocolli lo eliminano esplicitamente.

Riferimenti

Altre guide Base64