Codificador Base64 de arquivos gratuito
Converta qualquer arquivo para uma URL de dados Base64 · tudo permanece no seu navegador.
Arraste e solte um arquivo aqui
ou
Selecione ou solte um arquivo para codificar.
Como funciona
- Envie seu arquivo: solte qualquer arquivo (imagem, PDF, fonte, áudio ou binário) na zona de soltar ou clique para navegar.
- Obtenha a string Base64: O arquivo é lido e codificado em Base64 instantaneamente no seu navegador.
- Copie e use: Copie a string Base64 para incorporar em HTML, CSS, payloads JSON, URIs de dados ou qualquer formato baseado em texto.
Por que usar o codificador Base64 de arquivos?
Arquivos binários não podem ser incorporados diretamente em formatos baseados em texto como HTML, CSS, JSON ou XML. A codificação Base64 converte qualquer arquivo binário em uma string ASCII segura que pode ser incorporada em qualquer lugar onde texto é permitido. Isso é essencial para incorporar imagens diretamente no HTML (URIs de dados), incluir fontes no CSS, enviar arquivos em APIs de e-mail ou JSON sem endpoints de upload e criar documentos HTML independentes.
Recursos
- Qualquer tipo de arquivo: Codifica imagens, PDFs, fontes, áudio, vídeo e todos os arquivos binários.
- Saída URI de dados: Ative para obter uma URI de dados pronta para uso para incorporação direta.
- Exibição do tamanho do arquivo: Mostra os tamanhos original e codificado para que você conheça a sobrecarga.
- Processamento local: os arquivos são lidos e codificados inteiramente no seu navegador, nada é enviado.
Perguntas frequentes
Quanto maior fica o Base64 comparado ao arquivo original?
A codificação Base64 aumenta o tamanho do arquivo em aproximadamente 33 %. Uma imagem de 100 KB se torna cerca de 133 KB quando codificada em Base64. Essa sobrecarga é o preço por poder incorporar conteúdo binário em texto.
Posso usar imagens Base64 em HTML?
Sim. Use uma URI de dados como <img src="data:image/png;base64,[seu-base64]">. Isso incorpora a imagem diretamente no HTML sem solicitação HTTP externa, embora aumente o tamanho da página.
Há um limite de tamanho de arquivo?
A ferramenta não tem limite imposto, mas arquivos muito grandes (acima de 10 MB) podem ser lentos para codificar e a string resultante será extremamente longa. Para arquivos grandes, considere uma solução do lado do servidor.
De onde Base64 veio, e por que ainda o usamos
Base64 foi projetado para transportar dados binários de 8 bits através de canais ASCII de 7 bits. A primeira especificação formal foi a RFC 989 (fevereiro de 1987) para Privacy-Enhanced Mail. A RFC 1341 (junho de 1992) e especialmente a RFC 2045 «MIME Parte Um» (novembro de 1996) tornaram-na a forma padrão de anexar arquivos binários ao e-mail. O documento canônico atual é a RFC 4648 (outubro de 2006), que também definiu a variante URL-safe. A mecânica é simples: pegue 3 bytes de entrada (24 bits), divida em quatro grupos de 6 bits, procure cada um no alfabeto de 64 caracteres A-Z a-z 0-9 + /, anexe o preenchimento = para fazer o comprimento da saída ser um múltiplo de 4. O tamanho de saída é exatamente 4 ÷ 3 ≈ 133 % da entrada. Para incorporar em URLs (JWT, OAuth, URLs pré-assinadas S3), a variante URL-safe da RFC 4648 §5 substitui - por + e _ por /; o preenchimento é tipicamente omitido.
A URL data:: Base64 no seu HTML e CSS
O esquema de URL data: foi especificado na RFC 2397 (agosto de 1998). Formato: data:[<mediatype>][;base64],<data>. Exemplo: <img src="data:image/png;base64,iVBORw0KGgo..."> incorpora um PNG inline sem requisição HTTP adicional. O WHATWG URL Living Standard governa como navegadores modernos interpretam essas URLs e o HTML Living Standard confirma que são válidas onde quer que uma URL seja permitida, incluindo <img>, <link>, <iframe>, e a função CSS url(). Orientação prática: use URLs data para ativos menores que cerca de 4 KB, onde economizar uma requisição HTTP supera os 33 por cento de inflação da carga útil. Acima de 10 KB, referências de arquivo regulares com cache do navegador quase sempre vencem, especialmente sobre multiplexação HTTP/2.
APIs do navegador que alimentam esta ferramenta
Esta página usa a API FileReader do HTML Living Standard (originalmente W3C File API First Public Working Draft novembro de 2009; enviada em Chrome 13 / Firefox 3.6 / Safari 6 / Internet Explorer 10). FileReader.readAsDataURL(blob) retorna a string completa data:<mime>;base64,<...> com uma única chamada. A alternativa legada é btoa() (nomeada após o comando histórico do Unix «binary-to-ASCII» e um remanescente do JavaScript DOM Level 0), mas lança em entradas não-Latin-1 a menos que você transcodifique primeiro através de UTF-8. A substituição moderna é Uint8Array.prototype.toBase64(), adicionada ao ECMAScript 2025 em TC39 Stage 4. Ela foi enviada em Chrome 132 (janeiro de 2025), Firefox 133 (novembro de 2024), e Safari 18.2 (dezembro de 2024). Use a nova API para qualquer código novo; reserve btoa para compatibilidade com navegadores mais antigos.
Para onde realmente vai a saída desta ferramenta
- Ícones inline e imagens pequenas em HTML / CSS para documentos autocontidos ou orientados para offline.
- Cargas úteis de upload de arquivo JSON quando o backend espera uma string Base64 em um campo JSON em vez de
multipart/form-data. - Anexos de email MIME: a RFC 2045 requer Base64 (ou quoted-printable) para qualquer corpo não-7-bit, o que significa cada anexo PDF, imagem ou documento.
- Tokens JWT / OAuth: cada JWT são três segmentos Base64 URL-safe unidos por
.. - Fixtures de teste commitados no git, para que imagens de teste / documentos de amostra viajem com o arquivo de teste.
- Cargas úteis Web Push ao entregar um blob binário através da API Push.
- Fontes web de caminho crítico incorporadas no CSS para evitar FOIT (flash de texto invisível) na primeira pintura, trade-off aceito.
Erros comuns
- Tratar Base64 como criptografia. Base64 é codificação, não segurança. Qualquer pessoa com a string pode decodificá-la em seu navegador. Nunca use Base64 para «esconder» credenciais, chaves de API ou PII.
- Esquecer o prefixo
data:<mime>;base64,. Uma string Base64 nua não é uma URL data. Um<img>precisa da forma completadata:image/png;base64,<seu-base64>para renderizar. - Misturar Base64 URL-safe e padrão. JWT e URLs pré-assinadas S3 usam URL-safe (
-e_). Colar Base64 padrão (+e/) nesses contextos produz falhas silenciosas de decodificação. - Esquecer a diretiva CSP
data:. Uma página comimg-src 'self'em sua Content Security Policy se recusará a carregar qualquer URLdata:image/.... Você tem que explicitamente permitirimg-src 'self' data:(e similarmente parafont-src,media-src, etc.). - Codificar arquivos de 100 MB sincronamente na thread principal.
FileReader.readAsDataURLbloqueia a UI por vários segundos em um arquivo de 200 MB. Para qualquer coisa acima de ~20 MB, use um Web Worker ou stream chunks. - Chamar
btoa("é")diretamente. LançaInvalidCharacterErrorporquebtoaespera Latin-1, não UTF-8. Ou usebtoa(unescape(encodeURIComponent(text)))(legado), ou passe umUint8Arrayatravés do método modernotoBase64(). - Inline um logo de 500 KB como URL data. A inflação de 33 por cento mais a perda de cache do navegador significa que cada carregamento de página baixa 665 KB em vez de 500 KB-uma-vez. Use uma referência de ativo regular.
Mais perguntas frequentes
Qual é a sobrecarga exata de tamanho do Base64?
Exatamente 4 ÷ 3 ≈ 1,333× a entrada, mais 1-2 bytes de preenchimento =. Uma entrada de 999 bytes se torna 1332 caracteres de Base64 (sem preenchimento porque 999 ÷ 3 = 333 exatamente). Uma entrada de 1000 bytes se torna 1336 (um byte de preenchimento). Para uma URL data, adicione os bytes do prefixo (p. ex. data:image/png;base64, tem 23 caracteres).
Como obtenho Base64 URL-safe para JWT ou URLs pré-assinadas S3?
Pegue a saída Base64 padrão desta ferramenta e aplique duas substituições: + → -, / → _. JWT especificamente remove o preenchimento = final; S3 o mantém. A RFC 4648 §5 documenta a variante.
Posso fazer ida e volta de um arquivo através do Base64 sem corrupção?
Sim. Base64 é uma codificação sem perdas. Codificar para Base64 e depois decodificar de volta produz um original idêntico byte por byte. A única maneira de perder dados é truncar a string Base64 (p. ex. limitar caracteres em seu armazenamento) ou confundir alfabetos padrão vs URL-safe ao decodificar.
Qual é o tamanho máximo de arquivo que esta ferramenta pode manipular?
Sem limite rígido; na prática a memória do navegador é o teto. Codificar um arquivo de 100 MB requer aproximadamente 100 MB de entrada mais 133 MB de saída, mais sobrecarga DOM para a string resultante, talvez 400 MB no total. No celular, espere falhas acima de cerca de 30 MB. A codificação roda na thread principal, então a UI congela durante o processamento; para arquivos acima de 20 MB, uma solução do lado do servidor ou Web Worker é mais confortável.
Meu arquivo é enviado para algum lugar?
Não. O arquivo é lido com a API FileReader.readAsDataURL do navegador, que roda inteiramente em seu navegador. Nenhuma requisição de rede é feita e nenhuma cópia do seu arquivo é armazenada em qualquer servidor. Abra a aba Rede no DevTools e solte um arquivo: você verá zero requisições de saída durante a codificação.