Codificador de Arquivo Base64

Codifique qualquer arquivo em Base64 — PDF, ZIP, imagens e muito mais

Solte qualquer arquivo aqui ou clique para fazer upload

Qualquer tipo de arquivo — PDF, ZIP, imagens, arquivos binários

O que é Codificação de Arquivo Base64?

A codificação de arquivo Base64 converte arquivos binários — PDFs, ZIPs, imagens, executáveis, fontes, áudio — em texto ASCII plano usando o alfabeto definido em RFC 4648. Cada três bytes de entrada binária se tornam quatro caracteres Base64, produzindo uma representação de texto que pode viajar por canais projetados exclusivamente para texto: cargas úteis de API JSON, documentos XML, corpos de e-mail, atributos HTML e variáveis de ambiente.

Ao contrário da codificação texto-para-Base64 (que funciona em strings), a codificação arquivo-para-Base64 lê o fluxo de bytes bruto de qualquer arquivo independentemente de seu formato. Os cabeçalhos binários de um PDF, os blocos comprimidos de um ZIP e os dados de pixels de um PNG são todos tratados de forma idêntica: como uma sequência de octetos a ser recodificada. O resultado é sempre ASCII válido, seguro para incorporar em qualquer lugar que aceite caracteres imprimíveis.

O compromisso é o tamanho: a saída Base64 é aproximadamente 33% maior que o binário original. Para um PDF de 1 MB, isso significa aproximadamente 1,33 MB de texto Base64. Essa sobrecarga é inerente à codificação e nenhuma implementação pode evitá-la. Apesar disso, a codificação de arquivo Base64 permanece o método padrão para incorporar dados binários em formatos somente texto, especificado em MIME (RFC 2045), URIs de dados (RFC 2397) e Tokens Web JSON (RFC 7519).

Por Que Usar Este Codificador de Arquivo Base64?

Esta ferramenta codifica arquivos em Base64 diretamente no seu navegador usando a API FileReader. Nenhum arquivo é enviado para um servidor — toda a conversão acontece no lado do cliente em JavaScript.

🛡
Processamento Privado
Seu arquivo nunca deixa seu dispositivo. A API FileReader lê o arquivo na memória localmente, e a saída Base64 é gerada completamente no navegador. Nenhuma solicitação de rede é feita.
Arrastar e Soltar Instantâneo
Solte qualquer arquivo na ferramenta e veja a saída Base64 imediatamente. Sem espera de uploads, sem barras de progresso, sem limites de tamanho de arquivo impostos por um servidor.
📁
Qualquer Formato de Arquivo
Codifique PDFs, ZIPs, imagens, fontes, arquivos de áudio, módulos WebAssembly ou qualquer outro formato binário. O codificador trata todos os arquivos como fluxos de bytes brutos — o formato não importa.
🔒
Sem Conta Necessária
Use a ferramenta imediatamente sem se registrar, fazer login ou aceitar cookies. A saída está pronta para copiar ou fazer download como um arquivo .b64.txt com um clique.

Casos de Uso de Codificação de Arquivo Base64

Desenvolvedor Frontend
Incorpore pequenos ícones, fontes ou SVGs diretamente em CSS ou HTML como URIs de dados para eliminar solicitações HTTP adicionais. Um ícone de 2 KB em linha como Base64 economiza uma viagem de rede que adicionaria 50-200 ms de latência.
Engenheiro Backend
Inclua anexos de arquivo em cargas úteis de API JSON quando o protocolo de transporte não suporta uploads multipart. Codifique PDFs, relatórios ou documentos assinados antes de enviá-los como campos de string em respostas REST ou GraphQL.
DevOps / Infraestrutura
Armazene arquivos de configuração binária (certificados TLS, chaves SSH, arquivos de licença) como strings Base64 em variáveis de ambiente, Kubernetes Secrets ou tfvars do Terraform onde valores binários brutos não são permitidos.
QA / Engenheiro de Testes
Gere fixtures de arquivo Base64 para testes automatizados que verifiquem endpoints de upload, manipulação de anexos de e-mail ou pipelines de processamento de documentos sem gerenciar arquivos de teste binários em controle de versão.
Engenheiro de Dados
Serialize blobs binários (metadados Parquet, esquemas Protobuf, pequenos ativos binários) em Base64 para armazenamento em catálogos de dados baseados em JSON, lojas de configuração ou scripts de migração.
Aluno / Aprendiz
Observe como arquivos binários se tornam texto codificando arquivos pequenos e inspecionando a saída. Compare o comprimento Base64 com o tamanho do arquivo original para verificar a sobrecarga de 33% descrita em RFC 4648.

Sobrecarga de Tamanho de Arquivo Base64

A codificação Base64 aumenta o tamanho dos dados em exatamente um terço. Cada 3 bytes de entrada produzem 4 caracteres de saída (cada um representando 6 bits). Caracteres de preenchimento (=) são adicionados quando o comprimento de entrada não é múltiplo de 3. A tabela abaixo mostra a relação entre o tamanho do arquivo original e o tamanho da saída codificada.

Tamanho do ArquivoBytes BrutosBytes Base64Sobrecarga
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Referência de URI de Dados e Tipo MIME

Um URI de dados incorpora conteúdo de arquivo diretamente em HTML, CSS ou JavaScript usando o formato data:[tipo MIME];base64,[dados codificados]. O tipo MIME informa ao navegador como interpretar os bytes decodificados. Abaixo estão extensões de arquivo comuns, seus tipos MIME e o prefixo de URI de dados correspondente.

ExtensãoTipo MIMEPrefixo de URI de Dados
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Exemplos de Código

Estes exemplos executáveis mostram como ler um arquivo binário e codificá-lo em Base64 em JavaScript, Python, Node.js, bash e Go. Cada trecho produz Base64 padrão (RFC 4648 Seção 4) com preenchimento.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

Perguntas Frequentes

Qual é o tamanho máximo de arquivo que posso codificar em Base64?
Esta ferramenta é executada inteiramente no seu navegador, portanto, o limite depende da memória disponível. Navegadores modernos lidam com arquivos de até 50-100 MB sem problemas. Para arquivos maiores, use uma ferramenta de linha de comando como base64 (macOS/Linux) ou o módulo base64 do Python, que processa o arquivo em pedaços e não carrega toda a saída na memória de uma vez.
Quanto maior é a saída Base64 em comparação com o arquivo original?
A saída Base64 é sempre aproximadamente 33,3% maior que a entrada. Especificamente, a fórmula é ceil(n / 3) * 4, onde n é o número de bytes de entrada. Um arquivo de 1 MB produz cerca de 1,33 MB de texto Base64. Esta sobrecarga é inerente à codificação e não pode ser reduzida.
Posso codificar um arquivo em Base64 e usá-lo como um URI de dados?
Sim. Anteceda o prefixo de tipo MIME à string Base64: data:application/pdf;base64, seguido do conteúdo codificado. Os navegadores decodificarão e renderizarão o URI de dados como se fosse um arquivo regular. URIs de dados funcionam em img src, link href, CSS url() e atributos de download de âncora.
A codificação de arquivo Base64 é a mesma coisa que criptografia?
Não. Base64 é uma codificação, não criptografia. Ele transforma dados binários em uma representação de texto trivialmente reversível — qualquer pessoa com um decodificador Base64 pode recuperar o arquivo original. Base64 não fornece confidencialidade, integridade ou autenticação. Se você precisar proteger o conteúdo do arquivo, criptografe o arquivo primeiro (por exemplo, com AES-256-GCM), depois codifique o criptograma em Base64 para transporte.
Por que minha string Base64 termina com um ou dois caracteres =?
Os caracteres = são preenchimento. Base64 processa entrada em grupos de 3 bytes, produzindo 4 caracteres de saída por grupo. Quando o tamanho do arquivo não é múltiplo de 3, um ou dois caracteres de preenchimento são adicionados para que o comprimento da saída seja sempre múltiplo de 4. Um = significa que o último grupo tinha 2 bytes; dois == significa que o último grupo tinha 1 byte.
Como codifico um arquivo em Base64 a partir da linha de comando?
No macOS e Linux, use o comando base64: base64 < file.pdf > file.b64.txt. No GNU/Linux, adicione -w 0 para suprimir o ajuste de linha. Você também pode usar OpenSSL: openssl base64 -in file.pdf -out file.b64.txt. No Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Quando devo usar codificação de arquivo Base64 em vez de multipart/form-data?
Use Base64 quando o transporte requer um formato somente texto — APIs JSON, XML-RPC, variáveis de ambiente ou Kubernetes Secrets. Use multipart/form-data ao fazer upload de arquivos através de formulários HTML ou endpoints REST que suportam fluxos binários. Multipart é mais eficiente porque evita a sobrecarga de tamanho de 33%, mas requer que o servidor analise limites multiparte.