Base64 no es cifrado
Base64 expresa bytes cualesquiera usando solo letras, dígitos y un par de símbolos. Existe para que los datos binarios puedan viajar por canales pensados para texto: cuerpos de correo, campos JSON, atributos HTML.
No hay clave ni secreto, así que revertirlo no cuesta nada. Meter una contraseña en Base64 en un archivo de configuración no la oculta, solo añade un paso de molestia. Si algo debe estar oculto de verdad, cífralo o déjalo en un gestor de secretos.
Cuándo usar URL-safe
El Base64 estándar usa + y /. Ambos significan otra cosa dentro de una dirección, así que un valor pegado tal cual en una query string sale roto. El relleno = del final da el mismo problema.
URL-safe es la variante que arregla los tres casos: + pasa a -, / pasa a _ y el relleno desaparece. Es exactamente la codificación de las tres partes de un JWT, y también la de los códigos de autorización OAuth o de cualquier valor que acabe en un nombre de archivo. Usa URL-safe cuando el valor va en una dirección y el estándar en el resto de casos.
El resultado crece
Base64 convierte tres bytes en cuatro caracteres, así que la salida es un 33% más larga que la entrada. Antes de eso está UTF-8: un emoji ocupa cuatro bytes y una tilde dos, de modo que el texto crece antes incluso de codificarse.
Ese crecimiento importa al incrustar una imagen como URL data:. Para un icono pequeño, ahorrarse una petición compensa. Para una fotografía, la página carga el archivo entero más un tercio, y la primera pintura lo paga.
Cuando la decodificación falla
Esto no es Base64 casi siempre significa que la cadena venía cortada, o que se colaron comillas y saltos de línea. La herramienta ya limpia espacios y admite caracteres URL-safe, así que si aun así se niega, la cadena está incompleta.
Se decodifica como binario quiere decir que la decodificación funcionó pero el resultado no es texto legible. Si el valor es una imagen o un zip en Base64, esa es la respuesta correcta y no un fallo.