Cómo funciona la decodificación Base64
Base64 escribe cada 3 bytes como 4 caracteres de un alfabeto de 64: A–Z, a–z, 0–9 y dos más. Decodificar invierte el proceso. Cada carácter representa 6 bits, cuatro caracteres devuelven tres bytes y el relleno = del final indica cuántos bytes contiene el último grupo.
Ejemplos
SGVsbG8=se decodifica comoHello.w6TDtsO8se decodifica comoäöü: tres caracteres, seis bytes de UTF-8.AAEC/w==son datos binarios, los cuatro bytes00 01 02 ff.
¿Texto o binario?
Base64 puede transportar cualquier cosa: texto, una imagen, una clave, un archivo comprimido. Cuando los bytes decodificados son UTF-8 válido sin caracteres de control, el decodificador los muestra como texto. Todo lo demás, como una imagen PNG o una clave aleatoria, aparece como bytes hexadecimales, para que nada invisible acabe en tu portapapeles.
Por qué una cadena no se decodifica
Normalmente la entrada contiene un carácter fuera del alfabeto (unas comillas, una barra invertida o un signo de porcentaje que quedó de una codificación de URL) o está cortada: ninguna cadena Base64 válida tiene una longitud de 4n+1 caracteres. El decodificador indica el primer problema que encuentra. Recuerda que Base64 es una codificación, no un cifrado: cualquiera puede decodificarlo.
Para el camino inverso, usa el codificador Base64. Un valor con la forma xxxxx.yyyyy.zzzzz suele ser un JSON Web Token; el decodificador JWT lo separa y da formato a su cabecera y su carga útil.