Base64 é notação, não criptografia
O Base64 reescreve bytes arbitrários usando apenas A-Z, a-z, 0-9 e dois símbolos. Três bytes se repartem em quatro grupos de seis bits e cada grupo vira um caractere, então a saída ocupa cerca de quatro terços da entrada. Os sinais de igual preenchem qualquer grupo final incompleto.
Sua finalidade é levar dados binários por canais que só aceitam texto: anexos de e-mail, imagens embutidas direto numa página e credenciais colocadas num cabeçalho HTTP. Isso evita que sistemas intermediários estraguem bytes que não esperavam.
Caracteres multibyte são convertidos primeiro para UTF-8 e codificados a partir daí. A palavra café tem cinco bytes porque o é ocupa dois, então gera oito caracteres Base64 — o mesmo que uma palavra de cinco letras sem acento. Por isso o tamanho da saída não diz nada confiável sobre o número original de caracteres.
Não confunda codificação com segurança
Qualquer um reverte Base64 na hora. Guardar uma senha ou um token em Base64 não o esconde; só o torna incômodo de ler, e ele fica completamente exposto assim que chega a um log ou a um backup. Valores que precisam permanecer secretos exigem criptografia ou hash.
Colocar Base64 cru dentro de uma URL a quebra. Os caracteres de mais e barra do alfabeto padrão significam outra coisa num endereço web, então URLs precisam da variante segura que troca esses dois por outros caracteres.
Quando a decodificação falha costuma ser problema de comprimento ou de preenchimento. O comprimento de uma cadeia Base64 tem de ser múltiplo de quatro, e quebras de linha ou espaços soltos apanhados ao copiar farão o analisador rejeitá-la.