Base64 es notación, no cifrado
Base64 reescribe bytes arbitrarios usando solo A-Z, a-z, 0-9 y dos símbolos. Tres bytes se reparten en cuatro grupos de seis bits y cada grupo se convierte en un carácter, así que la salida ocupa alrededor de cuatro tercios de la entrada. Los signos igual rellenan cualquier grupo final incompleto.
Su propósito es llevar datos binarios por canales que solo aceptan texto: adjuntos de correo, imágenes incrustadas directamente en una página y credenciales colocadas en una cabecera HTTP. Evita que los sistemas intermedios estropeen bytes que no esperaban.
Los caracteres multibyte se convierten primero a UTF-8 y se codifican desde ahí. La palabra café ocupa cinco bytes porque la é ocupa dos, así que produce ocho caracteres Base64, lo mismo que una palabra sin tildes de cinco letras. Por eso la longitud de la salida no dice nada fiable del número de caracteres original.
No confundas codificación con seguridad
Cualquiera puede revertir Base64 al instante. Guardar una contraseña o un token en Base64 no lo oculta; solo lo hace incómodo de leer, y queda completamente expuesto en cuanto llega a un registro o a una copia de seguridad. Los valores que deben permanecer secretos necesitan cifrado o hash.
Meter Base64 en crudo dentro de una URL la rompe. Los caracteres de suma y barra del alfabeto estándar significan otra cosa en una dirección web, así que las URL necesitan la variante segura que sustituye esos dos por otros caracteres.
Cuando la descodificación falla suele ser un problema de longitud o de relleno. La longitud de una cadena Base64 debe ser múltiplo de cuatro, y los saltos de línea o los espacios sueltos recogidos al copiar harán que el analizador la rechace.