Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. Codificador Base64

Codificador Base64: codificar texto em Base64 online

Digite ou cole o texto e o Base64 aparece enquanto você digita. UTF-8 por padrão, então acentos, cirílico, CJK e emoji são codificados corretamente, com opções de URL-safe, preenchimento e quebra de linha.

Grátis sem cadastro, sem limites Local nada é enviado 27 charsets, UTF-8 por padrão Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como codificar texto em Base64

  1. Digite ou cole o texto na caixa Entrada · texto. A página abre com um exemplo; clique em Limpar para começar do zero.
  2. O Base64 aparece em Saída · Base64 enquanto você digita. Para entradas muito grandes, desmarque Ao vivo e clique em Executar.
  3. Ajuste as opções que o sistema de destino espera: URL-safe (- _), Sem preenchimento (=), Quebra de linha e Charset. Os padrões (alfabeto padrão, com preenchimento, uma linha, UTF-8) servem para a maioria das APIs.
  4. Clique em Copiar saída, ou em Baixar para salvar o resultado como base64.txt.
  5. Para conferir a ida e volta, clique em Inverter. O Base64 vai para a entrada e a ferramenta passa a decodificar.

Abaixo dos botões aparecem o tamanho da entrada em bytes, o tamanho da saída e a variação percentual, o que ajuda quando um campo tem limite de tamanho.

Como funciona a codificação Base64

O Base64 trabalha com bytes, então o primeiro passo é transformar o texto em bytes com um charset (aqui, UTF-8, a menos que você escolha outro). O codificador pega os bytes de três em três, ou seja, 24 bits, divide em quatro números de 6 bits e escreve cada número como um caractere de um alfabeto de 64: A–Z, a–z, 0–9, + e /.

O exemplo clássico é o texto Man: os bytes 4D 61 6E viram TWFu. Quando o último grupo tem só um ou dois bytes, a saída é completada com =: Ma vira TWE= e M vira TQ==. O passo a passo completo está em como o Base64 funciona, e preenchimento explicado mostra quando o = pode ser omitido.

O tamanho da saída é sempre 4 × ⌈n / 3⌉ caracteres para n bytes, cerca de 33% a mais que a entrada. A calculadora de tamanho Base64 faz essa conta para qualquer tamanho, e o custo de tamanho do Base64 explica quando isso importa. Qualquer pessoa consegue reverter o Base64, então ele não esconde nada; leia codificação vs criptografia antes de colocar segredos nele.

Opções de codificação

OpçãoO que mudaQuando usar
URL-safe (- _)+ vira - e / vira _ (RFC 4648, seção 5)URLs, query strings, nomes de arquivo, cookies, JWT. O codificador Base64URL já vem com essa opção ligada
Sem preenchimento (=)Remove os caracteres = do finalJWT e a maioria dos formatos URL-safe; qualquer sistema que remova o = de qualquer jeito
Quebra de linha: 76 (MIME, LF ou CRLF)Insere uma quebra de linha a cada 76 caracteresCorpo e anexos de e-mail (codificador MIME)
Quebra de linha: 64 (PEM)Insere uma quebra de linha a cada 64 caracteresCertificados e chaves entre as linhas -----BEGIN e -----END
CharsetEm quais bytes cada caractere se transforma antes da codificaçãoUTF-8, a menos que o destino espere UTF-16, Windows-1251, Shift_JIS ou outra codificação legada

Exemplos com Unicode, emoji e saída URL-safe

Todos os valores abaixo foram gerados com o módulo base64 do Python e batem com a saída desta ferramenta.

EntradaConfiguraçãoBase64
HelloUTF-8SGVsbG8=
Hello, world!UTF-8SGVsbG8sIHdvcmxkIQ==
caféUTF-8Y2Fmw6k=
caféISO-8859-1Y2Fm6Q==
€UTF-84oKs
€Windows-1252gA==
👋UTF-88J+Riw==
👋UTF-8, URL-safe, sem preenchimento8J-Riw
ПриветUTF-80J/RgNC40LLQtdGC
ПриветWindows-1251z/Do4uXy

A mesma palavra gera Base64 diferente em charsets diferentes porque os bytes mudam: é ocupa dois bytes (C3 A9) em UTF-8 e um byte (E9) em Latin-1. O emoji da mão acenando tem quatro bytes em UTF-8, então sozinho ocupa 8 caracteres, dois deles de preenchimento.

Charsets e caracteres que não cabem

O UTF-8 representa qualquer caractere Unicode, então nunca perde nada. Os outros 26 charsets da lista (UTF-16LE/BE, UTF-32LE, ASCII, as páginas de código ISO-8859 e Windows, KOI8-R/U, CP866, Shift_JIS, EUC-JP, GBK, Big5 e EUC-KR) existem para sistemas que os exigem. Se o texto tiver um caractere que o charset escolhido não tem, ele é trocado por ? e um aviso informa quantos caracteres foram substituídos. O € em ISO-8859-1, por exemplo, vira Pw==, que é só um ponto de interrogação.

Escolha UTF-16LE para strings do Windows e do .NET e para o PowerShell; a página UTF-16 para Base64 explica o motivo. Escolha ASCII quando o sistema precisa rejeitar tudo que não for texto de 7 bits (ASCII para Base64).

Quebra de linha

O Base64 puro é uma única linha longa, o formato de que JSON, headers HTTP, URLs e variáveis de ambiente precisam. O e-mail usa linhas de 76 caracteres (RFC 2045) e os arquivos PEM usam 64. A opção de quebra insere quebras de linha \n nessa largura, ou CRLF com 76 (MIME, CRLF). Os decodificadores, incluindo o decodificador deste site, ignoram as quebras de linha, então a saída quebrada decodifica para os mesmos bytes. Base64 em e-mail explica as regras do MIME.

Erros comuns ao codificar

  • Uma quebra de linha entra de carona no final. echo Hello | base64 imprime SGVsbG8K porque o echo adiciona \n. O texto Hello sozinho é SGVsbG8=. Use printf '%s' e, ao colar aqui, confira se a contagem de bytes da entrada é a esperada.
  • btoa() dá erro com Unicode. No navegador, btoa("Grüße 👋") lança InvalidCharacterError, porque o btoa só aceita caracteres Latin-1. Converta para bytes UTF-8 antes, como no trecho abaixo.
  • O destino usa outro charset. Se você codifica em UTF-8 e o outro lado decodifica como Latin-1, café sai como café. Use o mesmo charset nos dois lados, ou escolha aqui o charset do destino.
  • Codificar duas vezes. O Base64 de SGVsbG8= é U0dWc2JHOD0=. Se um valor decodifica para mais Base64, alguma etapa do processo codificou duas vezes.
  • + e / quebram URLs. Numa query string, o + é lido como espaço. Use a opção URL-safe ou o codificador Base64URL, ou aplique percent-encoding no valor.

Codificar Base64 em JavaScript, Python e na linha de comando

No JavaScript do navegador, converta a string em bytes UTF-8 com TextEncoder e depois codifique os bytes. Navegadores mais novos aceitam bytes.toBase64() direto (Uint8Array.toBase64).

const bytes = new TextEncoder().encode("Grüße 👋");
let bin = "";
for (const b of bytes) bin += String.fromCharCode(b);
btoa(bin);                                   // "R3LDvMOfZSDwn5GL"

// Node.js
Buffer.from("Grüße 👋", "utf8").toString("base64");     // "R3LDvMOfZSDwn5GL"
Buffer.from("👋", "utf8").toString("base64url");         // "8J-Riw"

Em Python, b64encode recebe bytes e devolve bytes:

import base64

base64.b64encode("Grüße 👋".encode("utf-8")).decode("ascii")
# 'R3LDvMOfZSDwn5GL'
base64.urlsafe_b64encode("👋".encode()).rstrip(b"=").decode()
# '8J-Riw'

No Linux e no macOS, o comando base64 codifica a entrada padrão:

printf '%s' 'Grüße 👋' | base64
base64 -w 0 file.bin > file.b64

O primeiro comando imprime R3LDvMOfZSDwn5GL. O base64 do GNU no Linux quebra a saída em 76 colunas por padrão, e -w 0 desliga isso; a versão do macOS não quebra a menos que você peça. Mais linguagens e casos especiais: Base64 em JavaScript, Node.js, Python e PHP.

Quer codificar um arquivo em vez de texto?

Imagens, PDFs e qualquer outro arquivo passam pelo codificador de arquivos, com saída em data URI e JSON.

Arquivo para Base64

Perguntas frequentes

Como codificar uma string em Base64?

Cole a string na caixa de entrada acima e copie o resultado da caixa de saída. No código, converta a string em bytes UTF-8 e codifique esses bytes: base64.b64encode(s.encode()) em Python, Buffer.from(s).toString("base64") em Node.js.

Por que meu Base64 termina com = ou ==?

O Base64 trabalha em blocos de 3 bytes. Quando o tamanho da entrada não é múltiplo de 3, o último bloco fica incompleto e o = marca os bytes que faltam: um = para 2 bytes restantes, == para 1. Os detalhes estão em preenchimento explicado.

Por que o mesmo texto gera outro Base64 em outro lugar?

Quase sempre há uma diferença escondida nos bytes: uma quebra de linha no final (o echo adiciona uma), outro charset (UTF-8, Latin-1 ou UTF-16) ou normalização Unicode. Compare a contagem de bytes da entrada mostrada abaixo da ferramenta.

Codificar em Base64 serve para esconder senhas?

Não. O Base64 não tem chave e qualquer pessoa o decodifica em um segundo. Use-o para transportar dados e use criptografia ou hash de verdade para protegê-los. Veja codificação vs criptografia.

Quanto o texto cresce depois de codificar em Base64?

Cada 3 bytes viram 4 caracteres, então a saída fica cerca de 33% maior, mais as quebras de linha se você quebrar a saída. 100 bytes de UTF-8 viram 136 caracteres.