Decodex

DECODEX · BASE64 · UTF-8

Relleno Base64: qué significan = y ==

Entiende el relleno Base64 con f, fo y foo. Comprueba cadenas sin =, longitudes inválidas y errores de relleno parcial.

El = final es relleno, no un carácter del texto original. Base64 representa tres bytes mediante cuatro caracteres. Un grupo final de un byte necesita ==; uno de dos bytes necesita = en el formato con relleno.

Cuenta bytes, no letras

Cada carácter de datos representa seis bits. Tres bytes completan 24 bits y cuatro caracteres. Los acentos y emojis pueden ocupar varios bytes UTF-8: 😀 ocupa cuatro bytes y produce 8J+YgA==. La tabla compara entradas de uno, dos y tres bytes.

Restaurar relleno omitido

Si el formato admite entrada sin relleno, elimina espacios y calcula la longitud módulo 4. Resto 2: añade ==; resto 3: añade =; resto 0: no añadas nada. Resto 1: la cadena es inválida o está truncada y añadir = no la repara. Comprueba siempre el formato esperado por la API.

Por qué Zg funciona y Zg= falla

Decodex restaura el relleno completamente omitido de Zg y obtiene f. Zg== también es válido. Zg= tiene relleno parcial y longitud incorrecta, por lo que se rechaza. A=AA y Zg=== también fallan. No añadas o elimines = repetidamente para ocultar un error de copia.

Probar este ejemplo

TextoUTF-8 bytesBase64Relleno
f1Zg====
fo2Zm8==
foo3Zm9v—

Probar este ejemplo →

Base64 → UTF-8 · UTF-8 → Base64

Preguntas frecuentes

¿Toda cadena Base64 termina en =?

No. Si el número de bytes es múltiplo de tres, no se necesita relleno. Otros protocolos omiten el relleno expresamente.

Referencias

Más guías de Base64