Base64 para Ficheiro, Descodifica e Descarrega Qualquer Ficheiro
Cola uma string Base64 ou um data URI e descarrega o ficheiro real. Deteta automaticamente PDF, PNG, JPEG, ZIP, DOCX e muitos outros. Corre inteiramente no teu navegador.
A carregar Base64 para Ficheiro, Descodifica e Descarrega Qualquer Ficheiro… Se nada acontecer, ativa o JavaScript.
O Base64 é a forma como os ficheiros binários viajam por canais que só aceitam texto. Uma API devolve uma fatura em PDF como uma string longa, uma coluna de base de dados guarda um avatar em caracteres, uma linha de log contém um anexo, um data URI incorpora um ícone numa folha de estilos. Mais cedo ou mais tarde precisas do ficheiro de volta, e um descodificador que só imprime texto não serve de nada: um PNG descodificado e mostrado como texto é um amontoado de caracteres ilegíveis. Esta ferramenta pega no Base64 e devolve-te o ficheiro verdadeiro, com o nome e o tipo corretos, pronto a abrir.
Perguntas frequentes
Os meus dados Base64 são enviados para um servidor?
Como é que a ferramenta sabe o tipo e a extensão do ficheiro?
Posso colar um data URI completo?
E se o tipo detetado estiver errado?
Funciona com Base64url vindo de um JWT?
Porque é que recebo um erro de caractere inesperado?
Existe limite de tamanho?
A pré-visualização está vazia mas o download funciona. Porquê?
Consegue descodificar uma string Base64 que afinal é só texto?
Porque é que o ficheiro descarregado abre na aplicação errada?
Sobre Base64 para Ficheiro, Descodifica e Descarrega Qualquer Ficheiro
Cola a string e a descodificação acontece enquanto escreves. Podes colar apenas o conteúdo Base64 ou um data URI completo, como data:application/pdf;base64,JVBERi0xLjQK, caso em que o tipo MIME declarado e um eventual parâmetro name são aproveitados automaticamente. Quebras de linha, indentação, aspas à volta e vírgulas finais que sobraram de uma cópia feita a partir de JSON ou de um editor de código são removidas por ti. O Base64url, a variante segura para URLs que usa - e _ em vez de + e /, também é aceite, o que interessa porque é isso que os JSON Web Tokens e muitas APIs produzem, e o padding em falta é reposto em vez de dar erro.
A parte interessante é perceber o que são realmente aqueles bytes. A ferramenta lê o magic number, a assinatura curta que quase todos os formatos binários têm no início, e reconhece PDF, PNG, JPEG, GIF, WebP, BMP, ICO, TIFF, SVG, MP3, WAV, OGG, FLAC, MP4, WebM, ZIP, GZIP, RAR, 7z, tipos de letra WOFF e TrueType, bases de dados SQLite e executáveis do Windows. Os contentores ZIP são inspecionados um nível mais fundo, para que um DOCX, XLSX, PPTX ou ficheiro OpenDocument seja identificado como tal e não como um arquivo genérico. Quando o conteúdo é texto UTF-8 válido, é classificado ainda mais, em JSON, XML, HTML, PEM ou texto simples. O nome de ficheiro, a extensão e o tipo MIME sugeridos vêm dessa deteção, e os três continuam editáveis se souberes melhor do que o detetor.
Antes de descarregar podes ver o que descodificaste. Imagens, PDFs, áudio e vídeo são pré-visualizados na própria página, e os formatos de texto são mostrados como texto, o que normalmente chega para confirmares que colaste a string certa. Tudo corre localmente: a descodificação, a deteção de tipo e a pré-visualização acontecem no teu navegador através do atob e da File API, e o ficheiro é gerado a partir de um blob em memória. Nada é enviado, e é isso que a torna segura para documentos assinados, chaves privadas, registos médicos e tudo o resto que não colarias num conversor que corre num servidor.
Os 33 % de Imposto Que Toda a Gente Aceitou Pagar
O Base64 existe porque não se podia confiar o número 8 à internet dos primeiros tempos. Muitos sistemas de correio eletrónico das décadas de 1970 e 1980 assentavam em ASCII de 7 bits, e alguns removiam deliberadamente o oitavo bit ou estragavam caracteres de controlo. Qualquer byte acima de 127 podia ser destruído em silêncio durante o trajeto, o que tornava impossível enviar um programa ou uma imagem por email. A solução, formalizada no RFC 989 em 1987 e refinada nas especificações MIME de 1992, foi deixar de lutar contra o canal: recodificar os dados usando apenas caracteres que todos os sistemas já tratavam bem, e aceitar o custo disso.
Esse custo é exatamente 33 %, porque 3 bytes de entrada (24 bits) passam a 4 caracteres de saída (6 bits cada). É um negócio estranho, pagar um terço mais de largura de banda pelo privilégio de usar um canal mais burro, e era suposto ser temporário. Em vez disso, o Base64 sobreviveu ao problema que resolvia. O correio eletrónico moderno é limpo a 8 bits, e mesmo assim os anexos continuam codificados em Base64, porque quando o transporte melhorou já todos os clientes de email do planeta tinham sido construídos com essa premissa.
A ideia espalhou-se depois muito para além do email. Os data URI colocam imagens Base64 diretamente em HTML e CSS. O JSON não tem tipo binário, por isso todas as APIs que devolvem um ficheiro devolvem Base64. Os JWT, os certificados TLS em formato PEM, as chaves SSH, as mensagens PGP e os secrets do Kubernetes são todos embrulhados em Base64. Este último caso gera um mal-entendido recorrente que vale a pena repetir: Base64 não é encriptação. Um secret do Kubernetes guardado em Base64 é legível por qualquer pessoa capaz de correr um descodificador, ou seja, por toda a gente. Codificar esconde dados de uma camada de transporte, não de uma pessoa.