Codificação

Base64

Codificação e decodificação Base64 — texto e arquivos, diretamente no navegador.

Base64 is a binary-to-text encoding that represents arbitrary bytes using 64 printable ASCII characters (A–Z, a–z, 0–9, plus + and /). It exists so binary data — images, archives, cryptographic keys — can pass unchanged through channels that were designed for text only.

This tool encodes and decodes both plain text and files. Everything runs client-side in your browser: the input never leaves your machine, which makes it safe for tokens, private keys, and other sensitive data.

How to use it

Common uses

Things to keep in mind

Base64 is not encryption — anyone can decode it. It only changes the representation of data, not its confidentiality.

Encoded output is about 33% larger than the input because every 3 bytes become 4 characters.

For URLs and file names use Base64URL, which swaps + and / for - and _ and often drops the = padding.

Artigo sobre esta ferramenta: Base64: para que serve a codificação e como funciona

Perguntas frequentes

Para que serve o Base64 na prática?

O Base64 transforma dados binários em texto ASCII simples para que possam trafegar com segurança por sistemas que só lidam com texto, como corpos de e-mail, payloads JSON ou uma pequena imagem incorporada direto em CSS/HTML.

Por que a saída codificada é maior que a minha entrada?

O Base64 empacota 3 bytes de entrada em 4 caracteres de saída, então o texto codificado fica cerca de 33% maior que o original. Isso é esperado e não indica erro.

Meu arquivo ou texto é enviado para algum lugar?

Não. A codificação e decodificação acontecem inteiramente no seu navegador com JavaScript — nada é enviado a um servidor, então funciona offline também.

Qual a diferença entre o Base64 padrão e o Base64URL?

No Base64URL os caracteres + e / são substituídos por - e _, para que a string possa ser inserida com segurança numa URL ou nome de arquivo sem percent-encoding adicional. É essa variante que o JWT utiliza.

O que significa o caractere = no final da string?

É o preenchimento (padding), que indica quantos bytes faltam no último bloco de 3 bytes. Nem sempre é obrigatório — alguns sistemas o descartam deliberadamente.

Artigos: Codificação

Base32: em que difere do Base64 e quando é mais prático

O alfabeto do Base32, que não diferencia maiúsculas de minúsculas, e os casos em que é mais prático que o Base64.

URL Encode/Decode: o percent-encoding em links

Como caracteres especiais em endereços e parâmetros se tornam sequências %XX.

HTML Entities: como exibir caracteres especiais com segurança

Por que os caracteres < > & precisam ser escapados e como isso evita que a marcação quebre.

JWT: a estrutura do token e o que significa "decodificar" um JWT

O header, o payload e a signature de um JWT, e por que decodificar não é o mesmo que verificar a assinatura.

Unicode Escape: o que significam as sequências \uXXXX

De onde vêm sequências como \u0041 em JSON e strings JS, e o que significam.

ROT13 e a cifra de César: substituição simples de caracteres

Por que um deslocamento de 13 letras torna o ROT13 autoinverso, e por que ainda se usa hoje.

Punycode: como os domínios internacionalizados funcionam no DNS

Como um domínio com caracteres não latinos se torna uma forma ASCII com o prefixo xn--.

Código Morse: como o texto se transforma em pontos e traços

O princípio de codificar letras em pontos e traços, e onde o Morse ainda é usado hoje.

Data URI: quando incorporar imagens diretamente no código

Como um Data URI incorpora o conteúdo de um arquivo diretamente em HTML ou CSS, e quando vale a pena.

Gzip + Base64: comprimir dados para transmitir como texto

Por que dados binários comprimidos também são codificados em Base64 antes de irem para um campo de texto.

XML Entities: escapar caracteres em documentos XML

As cinco entidades XML obrigatórias sem as quais o documento quebra ao ser analisado.