Como converter um arquivo para Base64
- Arraste um ou mais arquivos para a caixa, use o seletor de arquivos ou cole arquivos copiados com Ctrl+V.
- Escolha Saída como: Base64 puro (o padrão aqui), Data URI, HTML
<a download>, JSON e os formatos para imagens e fontes. - Opcional: URL-safe troca
+e/por-e_; Quebrar em 76 quebra as linhas para e-mail MIME. - Clique em Copiar saída, ou em Salvar como .txt para obter
filename.ext.b64.txt.
Com vários arquivos, uma lista mostra cada nome com o tamanho original e o codificado. Mostrar exibe um resultado, e Copiar tudo como JSON copia todos os arquivos como um array de objetos {name, type, size, data}. Fica rápido colar isso num arquivo de fixture ou num script de seed.
O que as opções de saída significam para arquivos que não são imagem
| Saída como | Resultado para report.zip | Use para |
|---|---|---|
| Base64 puro | UEsDBBQAAAAI... | campos de API, variáveis de ambiente, valores de configuração |
| Data URI | data:application/zip;base64,UEsDBBQA... | URLs em HTML ou JavaScript |
HTML <a download> | <a href="data:application/zip;base64,..." download="report.zip">report.zip</a> | um link de download autossuficiente |
| JSON | {"name": "report.zip", "type": "application/zip", "size": 323, "data": "UEsDBBQA..."} | fixtures de teste, seus próprios endpoints de upload |
As chaves do JSON são fixas (name, type, size, data). Se uma API espera outros nomes, renomeie depois de colar. size é o tamanho original do arquivo em bytes, o que permite ao destino conferir se o tamanho decodificado bate.
O MIME type no data URI e o type do JSON vêm do navegador. Se o navegador não conhece o arquivo, a ferramenta deduz pela extensão e, se isso também falhar, usa application/octet-stream. Isso só afeta o rótulo; o Base64 sai igual de qualquer forma.
Arquivos binários em segredos de CI e configurações
Um motivo comum para codificar um arquivo inteiro é um cofre de segredos que só guarda texto: variáveis de CI, arquivos .env, Secrets do Kubernetes. Keystores de assinatura, certificados e arquivos de service account entram como uma linha Base64 e são restaurados no pipeline:
echo "$KEYSTORE_B64" | base64 -d > release.keystore
Deixe Quebrar em 76 desligado nesse caso. Um valor com quebras de linha costuma ser estragado pela interface de segredos ou pelo shell. O Kubernetes guarda todo valor em data: dessa forma, e o decodificador de Secret do Kubernetes os lê de volta.
Saiba o que você codificou pelos primeiros caracteres
Os primeiros bytes da maioria dos formatos de arquivo são uma assinatura fixa, então o começo do Base64 revela o tipo sem decodificar. Alguns comuns:
| Tipo de arquivo | O Base64 começa com |
|---|---|
JVBERi0 | |
| ZIP, DOCX, XLSX, PPTX, JAR, APK | UEsDB |
gzip (.gz, .tgz) | H4sI |
| 7-Zip | N3q8ryc |
| EXE ou DLL do Windows | TVqQ (a maioria dos arquivos), sempre TV |
| Binário ELF do Linux | f0VMRg |
| Banco de dados SQLite | U1FMaXRlIGZvcm1hdCAz |
| MP3 com tag ID3 | SUQz |
| PNG | iVBORw0KGgo |
| Objeto JSON | eyJ (para {") |
Há uma lista maior em prefixos Base64 comuns. Quando você decodifica com o Base64 para Arquivo, o tipo é detectado do mesmo jeito.
Tamanho, memória e arquivos grandes
A saída Base64 tem 4/3 do tamanho da entrada, arredondado para cima até um múltiplo de 4 caracteres. Um arquivo de 1 MB vira 1.398.104 caracteres, e com Quebrar em 76 entram mais 18.396 caracteres de quebra de linha. Os contadores abaixo da saída mostram os dois tamanhos e o acréscimo em porcentagem.
Tudo roda na aba do navegador, então o limite prático é a memória do seu aparelho:
- A caixa de texto mostra os primeiros 4 MB da saída; Copiar saída e Salvar como .txt sempre usam o resultado completo.
- Copiar saída fica desativado para saídas acima de uns 48 MB.
- Arquivos maiores que uns 48 MB são codificados em partes, e o resultado só é oferecido via Salvar como .txt.
Se o arquivo é tão grande, vale perguntar se o Base64 é o meio de transporte certo. Um upload multipart ou uma transferência binária direta evita o acréscimo de 33% e o pico de memória nas duas pontas. A calculadora de tamanho mostra o tamanho codificado antes de você começar.
Codificar um arquivo na linha de comando ou no código
Linux, com GNU coreutils (-w 0 desativa a quebra padrão em 76 caracteres):
base64 -w 0 report.zip > report.zip.b64
macOS (lá o base64 não quebra linhas por padrão):
base64 -i report.zip -o report.zip.b64
Windows PowerShell:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\data\report.zip")) | Set-Content report.zip.b64
Python:
import base64
from pathlib import Path
encoded = base64.b64encode(Path("report.zip").read_bytes()).decode("ascii")
Para processar arquivos grandes em streaming sem carregá-los na memória, veja Base64 em Python, Node.js, Java e PHP.
Problemas comuns
- Quebras de linha na saída. O
base64do GNU quebra em 76 caracteres por padrão, oopenssl base64em 64, e ocertutil -encodeainda adiciona linhas de cabeçalho. Muitas APIs JSON e variáveis de ambiente precisam de uma linha só. Use-w 0,openssl base64 -Aou esta ferramenta com a quebra desligada. application/octet-streamno data URI. O navegador não conhecia o tipo e a extensão não estava na lista da ferramenta. Os bytes continuam corretos; troque o MIME type no prefixo se o destino se importar com isso.- Copiar saída está acinzentado. O resultado passou do limite de cópia de uns 48 MB. Salvar como .txt continua funcionando, e a maioria das ferramentas que precisam da string consegue lê-la de um arquivo.
- O JSON traz
"data": nullpara um arquivo. Num lote, arquivos acima de uns 48 MB são codificados em partes só para download, então Copiar tudo como JSON deixa os dados deles de fora. Codifique esse arquivo sozinho e salve como .txt. - O arquivo decodificado é menor que o original. A string foi truncada. Compare o tamanho decodificado com o valor
sizeda saída JSON. - Saída embaralhada quando a entrada era texto. O Base64 mantém os bytes como estão, incluindo a codificação de caracteres original. Um arquivo de texto em UTF-16 decodifica para UTF-16, não para UTF-8. Para texto digitado, use o Texto para Base64, que deixa você escolher o charset.
Perguntas frequentes
Que tipos de arquivo posso converter para Base64?
Qualquer um. O Base64 codifica bytes e não se importa com o que eles significam, então executáveis, arquivos compactados, bancos de dados e documentos funcionam do mesmo jeito que texto. Páginas específicas como PDF para Base64 só acrescentam dicas para aquele formato.
Existe limite de tamanho de arquivo?
Não há limite fixo, já que o trabalho acontece no seu navegador. Saídas de até uns 48 MB podem ser copiadas; acima disso, use Salvar como .txt. Arquivos acima de uns 48 MB são codificados em partes e só ficam disponíveis para download.
Como codificar um arquivo em Base64 no Windows sem instalar nada?
O PowerShell faz isso numa linha: [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\path\file.bin")). O certutil -encode também funciona, mas adiciona linhas -----BEGIN CERTIFICATE----- e quebra a saída, que você depois precisa limpar.
Qual MIME type o data URI usa?
O tipo que o navegador informa para o arquivo. Se ele não informar nenhum, a ferramenta deduz pela extensão e, em último caso, usa application/octet-stream. Edite o prefixo à mão se o destino precisar de um tipo específico.
Como decodificar o Base64 de volta para arquivo?
Use o Base64 para Arquivo. Ele detecta o tipo de arquivo pelos bytes decodificados e sugere a extensão correspondente.