Gratuito, sem registo
Descodificar e codificar Base64
O Base64 escreve quaisquer dados com 64 caracteres seguros: «Olá, mundo!» passa a T2zDoSwgbXVuZG8h. Cole Base64 para o descodificar ou escreva texto para o codificar; a ferramenta trata acentos e emojis em UTF-8, a variante segura para URL usada em tokens, as linhas de 76 caracteres do correio eletrónico e ficheiros inteiros convertidos em data URL. Tudo corre no seu navegador e nada é enviado para um servidor.
Como utilizar
- Escolha codificar ou descodificar. No separador Texto, selecione Codificar para transformar texto em Base64, ou Descodificar para ler uma cadeia Base64. Para imagens e documentos, use o separador Ficheiro.
- Cole ou escreva. O resultado atualiza-se enquanto escreve. Ao descodificar, os espaços e as quebras de linha são ignorados, e são aceites os alfabetos padrão e seguro para URL, com ou sem preenchimento.
- Copie ou descarregue. Copie o resultado com um clique. No separador Ficheiro pode copiar o data URL, descarregá-lo como ficheiro de texto ou converter Base64 colado de volta no ficheiro original.
Como funciona o Base64
Os computadores guardam os dados em bytes de 8 bits, mas muitos canais, como o correio eletrónico, os URL, o JSON e os atributos HTML, só transportam texto simples com segurança. O Base64 resolve o problema pegando nos bytes de 3 em 3 (24 bits) e dividindo-os em 4 grupos de 6 bits. Cada grupo de 6 bits é um número de 0 a 63 e escolhe um carácter de um alfabeto fixo: A–Z, a–z, 0–9, + e /.
Quando os dados não são múltiplo de 3 bytes, o último grupo completa-se com bits a zero e os caracteres em falta são substituídos por =. É por isso que «Man» dá TWFu, «Ma» dá TWE= e «M» dá TQ==. O desenho por baixo da ferramenta mostra o processo, bit a bit, para os três primeiros bytes do que escrever.
| Entrada | Bytes | Base64 |
|---|---|---|
| Man | 3 | TWFu |
| Ma | 2 | TWE= |
| M | 1 | TQ== |
| ã | 2 (c3 a3) | w6M= |
| € | 3 (e2 82 ac) | 4oKs |
Cada 3 bytes passam a 4 caracteres, por isso o Base64 fica cerca de um terço maior do que o original: 30 000 bytes dão 40 000 caracteres, mais 33,3%. O texto é primeiro convertido em bytes com UTF-8: as letras sem acento ocupam 1 byte, mas um «ã» ou um «ç» ocupam 2 e o símbolo do euro ocupa 3.
Onde se usa o Base64
- Anexos de correio eletrónico: o MIME codifica os ficheiros em Base64 e quebra as linhas aos 76 caracteres. Ative «Linhas de 76 caracteres» para obter o mesmo formato.
- Data URL em HTML e CSS: um ícone pequeno pode ser incorporado como data:image/png;base64,…, poupando um pedido à página. Use o separador Ficheiro para o criar.
- Tokens web: os JSON Web Tokens são três partes em base64url separadas por pontos. O cabeçalho {"alg":"HS256","typ":"JWT"} passa a eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. Descodificar um token mostra o conteúdo, mas verificar a assinatura exige a chave.
- Autenticação HTTP Basic: o cabeçalho «Authorization: Basic dXRpbGl6YWRvcjpzZW5oYQ==» é apenas utilizador:senha em Base64, e é por isso que só deve circular por HTTPS.
- API e ficheiros de configuração: dados binários como certificados, chaves e imagens aparecem muitas vezes em JSON ou YAML codificados em Base64.
Base64 não é cifragem
O Base64 é uma codificação, não uma cifra: não há chave e qualquer pessoa o descodifica num segundo, com esta ferramenta ou com uma linha de código. Não esconde nada. Uma palavra-passe, uma chave de API ou dados pessoais guardados em Base64 ficam tão expostos como em texto simples.
Para proteger dados, use cifragem a sério (por exemplo AES) e envie-os por HTTPS; para guardar palavras-passe, use uma função de hash lenta concebida para esse fim. O Base64 só serve para os dados atravessarem em segurança sistemas que esperam texto. Para valores aleatórios, como um sorteio ou uma amostra de teste, veja o gerador de números aleatórios.
Esta ferramenta descodifica no seu navegador, por isso colar aqui um token não o envia para lado nenhum. Ainda assim, trate os tokens e as chaves de produção como segredos.
Variantes: segura para URL, preenchimento e quebras de linha
Os caracteres + e / têm um significado especial nos endereços web e nos nomes de ficheiro. A variante base64url substitui-os por - e _: os mesmos bytes dão PDw/Pz8+Pg== em Base64 padrão e PDw_Pz8-Pg== em base64url. O preenchimento = também costuma ser omitido, porque o comprimento da cadeia já indica onde acabam os dados.
O descodificador aceita os dois alfabetos e funciona com ou sem preenchimento. Mostra um erro preciso quando um carácter não pertence ao alfabeto (com a sua posição), quando o comprimento não pode ser válido ou quando aparece um = a meio da cadeia. Os espaços e as quebras de linha são ignorados, como exige o MIME.
Exemplos resolvidos
Codificar um texto curto
«Olá, mundo!» ocupa 12 bytes em UTF-8, porque o «á» conta como 2. 12 é múltiplo de 3, por isso o resultado tem 4 grupos de 4 caracteres e não precisa de =: T2zDoSwgbXVuZG8h.
Uma palavra com cedilha e til
«Coração» tem 7 letras, mas 9 bytes em UTF-8, porque o «ç» e o «ã» ocupam 2 cada: em Base64 fica Q29yYcOnw6Nv.
Ler um cabeçalho Basic
Cole dXRpbGl6YWRvcjpzZW5oYQ== em Descodificar e obtém utilizador:senha. As credenciais ficam legíveis para quem vir o cabeçalho.
O símbolo do euro
O euro é o carácter U+20AC; em UTF-8 são os 3 bytes e2 82 ac, que dão 4oKs.
Fontes
- RFC 4648, «The Base16, Base32, and Base64 Data Encodings» (IETF, 2006): secção 4 (alfabeto Base64), secção 5 (base64url), secção 3.2 (preenchimento), secção 3.3 (caracteres fora do alfabeto) e secção 10 (vetores de teste).
- RFC 2045, «Multipurpose Internet Mail Extensions (MIME) Part One» (IETF, 1996), secção 6.8: codificação Base64 com linhas de no máximo 76 caracteres.
- RFC 7519, «JSON Web Token (JWT)» (IETF, 2015): uso de base64url sem preenchimento.
- RFC 3629, «UTF-8, a transformation format of ISO 10646» (IETF, 2003): número de bytes por carácter.
Fontes verificadas em 22/10/2026. Os exemplos desta página são calculados com o mesmo código da ferramenta, por isso as cadeias do texto coincidem sempre com o que ela produz.
Perguntas frequentes
Como se descodifica Base64?
O Base64 é uma cifra?
Porque é que o Base64 acaba em = ou ==?
Porque é que o Base64 é maior do que o original?
Qual é a diferença entre Base64 e base64url?
Porque aparece o erro «carácter inválido»?
Os acentos ficam bem ao descodificar?
Os meus ficheiros são enviados para algum lado?
Última atualização: quarta-feira, 14 de outubro de 2026