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

Base64 para HTML

Cole HTML codificado em Base64 para ler o código-fonte e ver uma prévia que não consegue rodar scripts nem contatar servidor algum. Útil para corpos de e-mail, payloads de webhook e anexos suspeitos.

Grátis sem cadastro, sem limites Local nada é enviado Sandbox sem scripts, formulários ou carga remota Atualizado 27 de out. de 2026
Entrada –Saída –Tamanho –

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

Como decodificar Base64 para HTML

  1. Cole o Base64 em Base64 ou data URI. Um URI data:text/html;base64, também funciona. Para um corpo de e-mail grande salvo como texto, use Abrir arquivo .txt.
  2. A lista de informações mostra o charset e a quantidade de linhas. Abaixo dela, um frame em sandbox mostra a página renderizada, com o aviso “Prévia em sandbox: scripts, formulários e recursos externos são bloqueados. O código-fonte está abaixo.”
  3. O painel Texto, abaixo da prévia, guarda o código-fonte. Copiar texto copia tudo.
  4. Clique em Baixar arquivo para salvar decoded.html.

Nada é enviado a lugar nenhum. A decodificação acontece no seu navegador, e a página não pode fazer requisições de rede, exceto as do contador de visitas da Cloudflare.

Por que a prévia fica em sandbox

HTML de origem desconhecida pode fazer muito mais do que exibir texto. Um corpo de e-mail pode trazer um pixel de rastreamento que informa quando e onde ele foi aberto, uma página de phishing pode conter um formulário de login que envia os dados ao atacante, e qualquer página pode rodar scripts. A prévia bloqueia cada uma dessas coisas:

AmeaçaO que impede
Scripts, incluindo onclick inline e <script>O iframe tem o atributo sandbox sem nenhuma permissão, então scripts nunca rodam
Formulários que enviam senhasO sandbox não permite envio de formulários
Pop-ups e redirecionamentos da página principalNão permitidos pelo sandbox
Leitura desta página ou do armazenamento delaO conteúdo em sandbox recebe uma origem única, sem acesso a nada
Pixels de rastreamento, imagens, fontes e CSS remotosA Content Security Policy da página bloqueia toda requisição a outro servidor

A política também bloqueia estilos inline, então a prévia mostra o texto, os links e a estrutura da mensagem de forma mais crua do que um cliente de e-mail. Imagens embutidas como URIs data: são permitidas e aparecem normalmente.

Páginas com mais de 2 MB não ganham prévia (“Grande demais para pré-visualizar aqui. Veja o código-fonte abaixo ou baixe o arquivo.”). O painel de código-fonte mostra os primeiros 256 KB de qualquer documento; Copiar texto copia o código completo de documentos de até 8 MB.

Como reconhecer HTML em Base64

O Base64 começa comInício decodificado
PCFET0NUWVBFIGh0bWw<!DOCTYPE html
PCFkb2N0eXBlIGh0bWw<!doctype html
PGh0bWw<html
77u/PCFET0NUWVBFUm byte order mark UTF-8, depois <!DOCTYPE
CjwhRE9DVFlQRSUma quebra de linha, depois <!DOCTYPE
PGRpdg, PHA+<div, <p>: um fragmento HTML, detectado como HTML

O charset é detectado pelos bytes: byte order mark, UTF-16, UTF-8 válido ou, como último recurso, Windows-1252. Uma tag <meta charset> dentro do documento não é consultada, então uma página em outra codificação legada pode mostrar acentos errados na prévia, enquanto o arquivo baixado mantém os bytes originais.

De onde vem o HTML em Base64

No e-mail, a versão HTML de uma mensagem muitas vezes é uma parte MIME com Content-Type: text/html e Content-Transfer-Encoding: base64. Cole aqui só as linhas codificadas dessa parte, ou abra a mensagem bruta inteira no decodificador de EML, que mostra todas as partes e anexos. Base64 no e-mail explica a estrutura.

Alguns serviços que recebem ou renderizam e-mails entregam o corpo HTML como campo Base64 no JSON de um webhook ou de uma API, e APIs de templates e de geração de PDF às vezes devolvem o HTML gerado do mesmo jeito. Decodificar Base64 dentro de JSON trata um payload inteiro de uma vez.

Campanhas de phishing usam URIs data:text/html para levar uma página de login falsa completa dentro de um link ou anexo. Colar o URI aqui mostra a página sem executá-la. Para montar esses URIs, veja HTML para Base64.

Prévia de HTML não confiável no seu próprio app

A mesma abordagem funciona em qualquer página web: decodifique e coloque o resultado em um iframe com o atributo sandbox vazio. O sandbox sozinho não impede que imagens e folhas de estilo remotas carreguem, então acrescente uma Content Security Policy no início do frame:

function previewHtml(b64, container) {
  const bytes = Uint8Array.from(atob(b64), (c) => c.charCodeAt(0));
  const html = new TextDecoder().decode(bytes);
  const csp = `<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'">`;
  const frame = document.createElement("iframe");
  frame.setAttribute("sandbox", "");
  frame.srcdoc = csp + html;
  container.append(frame);
}

No Chrome, uma página de teste com um script, uma folha de estilo remota e uma imagem remota não rodou nenhum script nem fez nenhuma requisição com essa função; sem a linha <meta>, a imagem e a folha de estilo foram baixadas. Diferente da prévia desta página, ela mantém os estilos inline. Mais em Base64 em JavaScript.

Perguntas frequentes

Como decodificar Base64 para HTML?

Cole a string na caixa acima. O código HTML aparece em Texto, com uma prévia em sandbox acima dele, e Baixar arquivo salva tudo como arquivo .html.

É seguro ver aqui o HTML de um e-mail de phishing?

A prévia roda com todas as permissões do sandbox desligadas, então scripts não rodam e formulários não podem ser enviados, e a Content Security Policy da página a impede de carregar qualquer coisa da internet, pixels de rastreamento incluídos. Abrir o arquivo baixado numa aba normal do navegador não tem nenhuma dessas proteções.

Por que a prévia aparece sem estilo?

Os estilos são bloqueados junto com todo o resto: a política de segurança que barra o conteúdo remoto também impede blocos <style> inline e atributos style. A prévia mostra o texto, os links e as imagens data: embutidas, o que basta para avaliar o que a mensagem diz.

Meu Base64 decodifica para HTML, mas a ferramenta diz XML ou Text. Por quê?

A ferramenta reconhece HTML por <!doctype html, <html ou por uma tag HTML comum como <div>, <p> ou <table> no início. Um fragmento que começa com um elemento personalizado ou com texto simples aparece como XML ou Text. Digite text/html em Tipo MIME para ter a prévia HTML e html em Extensão antes de baixar.