Codificar e Decodificar Base64
Cole o seu texto, escolha a direção e o formato e copie o resultado: esta ferramenta converte texto em Base64 ou Base64url e de volta – acentos, ç e emojis tratados corretamente como UTF-8 – e faz a codificação de URL com sinais de porcentagem nas três variantes mais usadas. Entradas inválidas são apontadas com a posição do erro.
Como o cálculo é feito
O Base64 representa bytes quaisquer usando apenas 64 caracteres imprimíveis (A–Z, a–z, 0–9, + e /). Cada 3 bytes viram 4 caracteres; se sobrarem bytes no final, um ou dois sinais de igual completam o espaço (padding, ou preenchimento). O resultado fica cerca de um terço maior que o original. Assim, dados binários podem passar por canais que só aceitam texto – anexos de e-mail, data URLs (data:image/png;base64,…), HTTP Basic Auth ou JSON.
Base64 não é criptografia. Qualquer pessoa consegue voltar ao original sem chave nenhuma. Nunca confie no Base64 para proteger credenciais.
Base64 x Base64url
O sinal de mais e a barra têm significado especial em URLs e nomes de arquivo. Por isso o Base64url (RFC 4648 § 5) os substitui pelo sinal de menos e pelo sublinhado e normalmente dispensa o preenchimento – é assim que os JSON Web Tokens (JWT) são codificados. Exemplo: os bytes FB FF viram +/8= em Base64 e -_8 em Base64url.
Por que o UTF-8 importa
O Base64 codifica bytes, não letras. Por isso a ferramenta primeiro converte o seu texto em UTF-8: “ç” vira dois bytes, um emoji vira quatro. A função nativa btoa() do navegador não faz isso e gera erro com caracteres fora do Latin-1. Se os bytes decodificados não forem texto UTF-8 válido, a ferramenta os mostra como valores hexadecimais.
Codificação de URL: três variantes
- Parte de uma URL (
encodeURIComponent): codifica tudo, exceto A–Z, a–z, 0–9 e- _ . ! ~ * ' ( )– inclusive/ ? & = #. Ideal para valores isolados, como um termo de busca em?q=…. - URL completa (
encodeURI): mantém os caracteres com significado especial (: / ? # & = +…) e só codifica espaços, letras acentuadas e afins. Para um link completo que precisa continuar funcionando. - Dados de formulário (
application/x-www-form-urlencoded): é assim que formulários HTML enviam os dados. Espaços viram+, e! ' ( ) ~também são codificados. Na decodificação, o+volta a ser espaço.
Todo caractere fora do conjunto permitido é escrito como % seguido de dois dígitos hexadecimais por byte UTF-8 (RFC 3986 § 2.1): espaço = %20, é = %C3%A9.
Todas as conversões rodam no seu navegador. Sua entrada não é enviada, não é armazenada e não aparece na barra de endereços.
Perguntas frequentes
Como decodificar Base64?
Escolha “Decodificar” e o formato “Base64” e cole o código – o texto aparece na hora. Se o código tiver - e _, ele é Base64url; nesse caso, escolha esse formato.
Base64 é criptografia?
Não. Base64 é só outra forma de escrever os mesmos dados e pode ser revertido sem chave. Para proteger dados, você precisa de criptografia de verdade e, para senhas, de um hash de senha.
Por que o Base64 muitas vezes termina com = ou ==?
O Base64 trabalha em grupos de 3 bytes. Se sobrarem 1 ou 2 bytes no final, a saída é completada com == ou = para que o comprimento seja múltiplo de 4. O Base64url geralmente omite esse preenchimento.
Qual a diferença entre encodeURI e encodeURIComponent?
encodeURI serve para endereços completos e não mexe em / ? & = #. encodeURIComponent codifica também esses caracteres e é a escolha certa para valores de parâmetros – caso contrário, um & dentro do valor quebraria a URL.
Por que o espaço às vezes vira %20 e às vezes +?
Em caminhos e segundo a RFC 3986, o espaço se escreve %20. Formulários HTML (application/x-www-form-urlencoded) o escrevem como +. Ao decodificar, você precisa saber qual variante tem em mãos – ali, um sinal de mais de verdade se escreve %2B.
Quanto um arquivo aumenta em Base64?
Cerca de 4/3 do tamanho original: 3 bytes viram 4 caracteres. Uma imagem de 300 KB fica com uns 400 KB em Base64, um pouco mais com as quebras de linha do MIME.
Fontes e base legal
- RFC 4648: RFC 4648 – The Base16, Base32, and Base64 Data Encodings (§ 4 Base64, § 5 Base64url, § 3.2 Padding)
- RFC 3986: RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (§ 2.1 Percent-Encoding, § 2.2 Reserved Characters)
- WHATWG URL Standard – application/x-www-form-urlencoded
- MDN Web Docs – encodeURIComponent()
- MDN Web Docs – encodeURI()
- MDN Web Docs – Base64 (Unicode problem, TextEncoder)
Última atualização:
Ferramentas relacionadas
- Gerador de Hash: SHA-256, SHA-512, SHA-1, MD5Calcule hashes SHA-256, SHA-384, SHA-512, SHA-1 e MD5 de textos ou arquivos e verifique checksums – no seu navegador, sem upload, grátis.
- Testador de RegexTeste expressões regulares JavaScript ao vivo: correspondências destacadas, grupos de captura em tabela e cada parte do padrão explicada. Grátis, sem upload.
- Formatador, validador e minificador de JSONValide JSON pela RFC 8259 com linha, coluna e explicação clara do erro. Formate ou minifique, ordene as chaves e copie. Tudo roda no seu navegador.
- Gerador de UUID: gere e valide UUID v4 e v7Gere UUID online: versão 4 (aleatória) ou versão 7 (ordenada por tempo), até 1.000 de uma vez. Valide um UUID e veja versão, variante e data de criação.
- Gerador de SenhaCrie senhas aleatórias fortes e frases-senha fáceis de lembrar (em inglês, lista EFF), com a entropia em bits — direto no navegador, sem enviar nem salvar nada.
- Validar e calcular um dígito de LuhnValide números com o algoritmo de Luhn (módulo 10, ISO/IEC 7812-1) ou calcule o dígito verificador – só confere o formato, direto no navegador.