Decodificar uma palavra simples
SGVsbG8gV29ybGQ=
Hello World
O = no final é padding, porque Hello World tem 11 bytes, que não é múltiplo de 3. Na decodificação, ele é removido sem dor.
Codifique ou decodifique strings e arquivos Base64 instantaneamente.
Última atualização
Base64 é um esquema de codificação que representa dados binários usando 64 caracteres imprimíveis. Os devs recorrem a ele sempre que um sistema que só aceita texto precisa transportar bytes — imagens pequenas embutidas em HTML, tokens, anexos de e-mail, data URLs, segredos copiáveis em logs e campos JSON que guardam blobs binários.
Base64 é *codificação*, não criptografia. Decodificar uma string Base64 normalmente revela o conteúdo original na hora, então nunca trate isso como uma camada de segurança. Tudo que está dentro de um Base64 é, na prática, público — a menos que tenha sido criptografado *antes* de ser codificado.
Por baixo dos panos, o Base64 pega 3 bytes (24 bits) e os reescreve como 4 caracteres de um alfabeto fixo de 64 símbolos (A–Z, a–z, 0–9, +, /). Quando o tamanho da entrada não é múltiplo de 3, o codificador adiciona um ou dois caracteres = no final como padding (preenchimento). É por isso que strings Base64 muitas vezes terminam com =.
= completam o último grupo de 4 e são totalmente normais em várias strings Base64.Selecione Codificar se você tem um texto puro ou arquivo e quer obter o Base64. Selecione Decodificar se você tem uma string Base64 e quer recuperar o conteúdo original.
Cole uma string na caixa de texto ou arraste um arquivo (imagem, PDF, qualquer coisa) para a área de drop. Arquivos são convertidos em uma URL data: pronta para ser embutida em HTML ou CSS.
A saída codificada é a string Base64. A saída decodificada é o texto original — ou, se a entrada foi um arquivo, os bytes recuperados disponíveis num link de download.
Clique no botão de copiar para mandar o resultado para a área de transferência. Tudo roda no seu navegador, então a entrada nunca sai da sua máquina.
Os elementos que vão aparecer toda hora quando você começa a trabalhar com Base64 — definidos pela RFC 4648.
| Elemento | Significado | Exemplo |
|---|---|---|
| Alfabeto | Os 64 caracteres usados pelo Base64 padrão | A–Z, a–z, 0–9, +, / |
| Alfabeto URL-safe | Usado por JWTs e URLs | A–Z, a–z, 0–9, -, _ |
| Padding | Completa o grupo final quando o tamanho não é múltiplo de 3 | = ou == |
| Tamanho do grupo | Bytes por bloco codificado → 4 caracteres de saída | 3 bytes → 4 caracteres |
| Crescimento do tamanho | A saída fica ~33% maior que a entrada | 100 B → 136 caracteres |
| Data URL | Arquivo embutido inline em HTML/CSS | data:image/png;base64,... |
SGVsbG8gV29ybGQ=
Hello World
O = no final é padding, porque Hello World tem 11 bytes, que não é múltiplo de 3. Na decodificação, ele é removido sem dor.
{"role":"student","active":true}eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=
Tokens JWT codificam cada segmento exatamente assim — por isso é tão comum o payload de um JWT começar com eyJ, que é a forma Base64 de {".
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=
O prefixo declara o tipo de mídia (image/png) e o encoding (base64). Tudo depois da vírgula é o conteúdo do arquivo. Útil para imagens minúsculas que carregam junto com a página.
Pj4/Pyc+Pg==
Pj4_Pyc-Pg
O Base64 URL-safe troca + por - e / por _, assim o valor pode ficar dentro de uma URL sem precisar de escape. Os JWTs usam essa variante.
= na mão e jogar o resultado em um decodificador estrito que espera o padding. (Decodificadores URL-safe costumam aceitar sem padding; os padrões, nem sempre.)= são adicionados como padding.atob() no navegador, Buffer.from(str, 'base64') no Node.js, base64.b64decode() no Python.=?= é padding. O Base64 gera 4 caracteres a cada 3 bytes de entrada. Quando o tamanho da entrada não é múltiplo de 3, um ou dois = são adicionados para que o tamanho codificado continue múltiplo de 4.data:image/png;base64,..., embutindo a imagem direto no HTML, CSS ou JSON sem precisar de uma requisição de rede separada.