Codificar e decodificar Base64
Escolha Base64 padrão ou o alfabeto seguro para URLs. O processamento ocorre neste servidor web; portanto, não cole senhas, chaves privadas, tokens de acesso ou outros segredos em uma ferramenta online pública.
O que é Base64
Base64 é uma codificação de dados binários para texto. Ela transforma grupos de bits de entrada em um alfabeto textual restrito. O Base64 padrão usa A–Z, a–z, 0–9, + e /, com = como padding quando necessário. A transformação é reversível e não fornece confidencialidade.
Base64 não protege segredos
Qualquer pessoa que receba dados Base64 normalmente pode decodificá-los sem uma chave. Codificar senha, API key, cookie, token ou dado privado em Base64 não o criptografa. A segurança precisa vir do protocolo e dos controles ao redor — por exemplo TLS em trânsito e proteção criptográfica ou armazenamento de segredos quando necessário.
Por que Base64 normalmente aumenta cerca de um terço
Base64 representa cada 24 bits de entrada — três bytes — como quatro símbolos de seis bits cada. Em entradas grandes, isso transforma 3 bytes em 4 caracteres codificados, produzindo aproximadamente 33,3% de overhead antes de quebras de linha opcionais ou sintaxe adicional do protocolo. Entradas pequenas podem ter overhead percentual maior por causa do padding.
O que significam os caracteres =
O padding completa o último grupo de quatro caracteres Base64 quando a quantidade de bytes de entrada não é múltipla de três. A RFC 4648 exige padding apropriado no caso geral, salvo quando a especificação que utiliza Base64 declara explicitamente que ele é desnecessário ou omitido. Por isso, esta ferramenta permite controlar entrada/saída sem padding em vez de assumir silenciosamente uma convenção.
Base64URL usa um alfabeto diferente
A RFC 4648 define um alfabeto Base64 seguro para URLs e nomes de arquivos no qual + é substituído por - e / por _. Base64URL não é apenas uma preferência visual: o decodificador precisa saber qual alfabeto o formato ao redor exige. Alguns protocolos também omitem o padding = final.
Por que validação estrita importa
A função base64_decode() do PHP possui modo estrito que rejeita caracteres fora do alfabeto Base64 em vez de descartá-los silenciosamente. Esta página acrescenta verificações de alfabeto, comprimento, posição do padding e representação canônica por round-trip. O tratamento estrito é útil quando dados malformados devem ser tratados como erro em vez de serem corrigidos silenciosamente.
Por que Base64 MIME pode conter quebras de linha
Base64 em MIME para e-mail possui regras de linhas voltadas ao transporte e permite que o decodificador ignore quebras de linha e outros whitespaces nesse contexto. Já a RFC 4648 diz que implementações não devem adicionar quebras sem que a especificação que referencia Base64 determine isso. Por isso, o decodificador oferece uma opção separada de whitespace estilo MIME em vez de considerar whitespace universalmente válido.
Base64 decodificado são bytes, não necessariamente texto
Um decodificador Base64 retorna a sequência original de bytes. Esses bytes podem representar texto UTF-8, imagem, dados comprimidos, certificado, executável ou qualquer outro formato binário. O PHP documenta explicitamente que a saída decodificada pode ser binária. Quando esta página detecta saída que não é texto UTF-8 exibível com segurança, ela mostra os bytes em hexadecimal em vez de inserir dados binários arbitrários no HTML.
HTTP Basic usa Base64, mas Base64 não é sua camada de segurança
A autenticação HTTP Basic monta user-id:password e codifica os octetos resultantes em Base64. A RFC 7617 alerta explicitamente que Basic não é seguro por si só, porque Base64 não protege as credenciais. Na prática, Basic deve ser usado com transporte externo seguro, como HTTPS/TLS, e controles operacionais adequados.
Base64 codifica bytes; UTF-8 define como texto vira bytes
Base64 por si só não define se o texto de origem usa UTF-8, ASCII, ISO-8859-1 ou outra codificação de caracteres. Os mesmos caracteres visíveis podem gerar sequências de bytes diferentes em encodings diferentes. Aplicações web normalmente trabalham com UTF-8, mas a interoperabilidade depende de ambos os lados concordarem sobre como transformar texto em bytes antes de aplicar Base64.