Desempacotar e Extrair ZIP
Upload de arquivos ZIP para visualizar e extrair arquivos, baixar individualmente ou extrair todos
Arraste um arquivo ZIP aqui, ou clique para selecionar
Suporta arquivos formato .zip
O que é Extração ZIP?
A extração ZIP abre um arquivo compactado e restaura os arquivos guardados dentro dele. Ela é útil quando você recebe um pacote comprimido, quer inspecionar o conteúdo antes de baixar tudo, precisa de apenas um arquivo ou deseja verificar nomes e tamanhos antes de confiar no pacote. Para arquivos normais, ZIP é sem perda e o conteúdo extraído deve ser igual ao original. Mas extrair não torna conteúdo desconhecido seguro. Um ZIP pode conter nomes enganosos, pastas inesperadas, dados enormes após a expansão ou executáveis que não devem ser abertos sem verificação. Esta ferramenta do navegador lê o arquivo localmente e permite baixar itens selecionados, sendo prática para pequenas checagens. Ela não substitui revisão de segurança de arquivos suspeitos.
Como Usar
Como usar
- Arraste um arquivo ZIP para a área de upload ou clique no botão 'Selecionar Arquivo ZIP'
- Visualize a lista de arquivos e as informações dos arquivos dentro do pacote
- Clique em 'Baixar' em um arquivo individual para extraí-lo
- Clique em 'Extrair Tudo' para baixar todos os arquivos como um ZIP
Segurança na Extração
- Inspecione a lista de arquivos antes de baixar os itens extraídos, especialmente quando o pacote veio de uma fonte desconhecida.
- Tenha cuidado com arquivos executáveis, pacotes aninhados e nomes de arquivo suspeitos.
Casos de uso
Princípio técnico
A leitura de um arquivo ZIP segue a ordem inversa da gravação. O navegador recebe o arquivo como um `ArrayBuffer` por meio da File API (`file.arrayBuffer()`) e o leitor percorre o final do arquivo de trás para frente procurando a assinatura End of Central Directory `0x06054b50` (PK\x05\x06). O EOCD ocupa no máximo 22 bytes mais um comentário opcional de até 65.535 bytes, então a janela de busca é limitada. O EOCD aponta o offset e o tamanho do Central Directory, que contém um File Header (`0x02014b50`) para cada entrada. Cada File Header contém os tamanhos comprimido e descomprimido, CRC-32, método de compressão, nome do arquivo e o offset do Local File Header correspondente (`0x04034b50`). O leitor pode então buscar diretamente qualquer entrada individual sem analisar as anteriores — por isso a extração de um único arquivo de um backup de vários GB é rápida.
A descompressão depende do byte de método: `0x00` é armazenado (sem compressão, apenas memcpy), `0x08` é DEFLATE conforme RFC 1951 (~99% dos arquivos no mercado), `0x0C` é BZIP2, `0x0E` é LZMA e `0x5D` é o mais antigo PPMd. Esta ferramenta usa JSZip (ou fflate para maior throughput — o `unzipSync` do fflate decodifica um arquivo DEFLATE típico de 10 MB em dezenas de milissegundos, várias vezes mais rápido que o JSZip). Após a descompressão, o CRC-32 dos bytes brutos é recalculado e comparado com o valor no diretório central; uma divergência indica corrupção ou adulteração.
Duas questões de segurança são relevantes para qualquer caminho de extração. A primeira é a vulnerabilidade Zip Slip (Snyk, 2018): um arquivo malicioso pode conter entradas com sequências de traversal de caminho como `../../etc/passwd`, e um extrator ingênuo que concatena o nome da entrada a um diretório de destino gravará fora do sandbox pretendido. A correção é normalizar o caminho concatenado com `path.resolve()` e verificar se ele ainda começa com o diretório de destino antes de qualquer gravação. Esta ferramenta oferece cada entrada como um download individual do navegador via `URL.createObjectURL(new Blob([bytes]))` e o navegador isola o destino, então o traversal de diretório não pode escapar da pasta de Downloads do usuário, mas o mesmo arquivo em um extrator de servidor seria explorável. Segundo, arquivos criptografados não são tratados: o ZipCrypto tradicional é uma cifra de fluxo de 32 bits que é trivialmente quebrada com um ataque de texto conhecido de três bytes, e o WinZip AES-256 moderno (PKWARE APPNOTE 7.0) requer o campo extra AE-2 com autenticação HMAC-SHA1 — nenhum dos dois caminhos é implementado aqui. Arquivos acima de 4 GiB dependem dos campos extras da extensão ZIP64 para tamanhos e offsets de 64 bits, que o analisador deve ler em vez dos campos de 32 bits do diretório central.
- Ordem de análise: busca reversa do final do arquivo pela assinatura EOCD `0x06054b50` (máx. 22 + 65535 bytes do final) → busca ao Central Directory → busca a cada Local File Header.
- Métodos de compressão: `0x00` armazenado, `0x08` DEFLATE (RFC 1951, ~99% dos arquivos), `0x0C` BZIP2, `0x0E` LZMA, `0x5D` PPMd.
- Integridade: CRC-32 com polinômio `0xEDB88320` (IEEE 802.3 invertido) recalculado nos bytes extraídos e comparado com o valor do diretório central.
- Zip Slip (Snyk 2018): entradas com traversal de caminho `../` podem gravar fora do diretório de extração; corrija normalizando e validando o caminho resolvido antes da gravação.
- Implementação no navegador: `File.arrayBuffer()` → JSZip / fflate `unzipSync()` → `URL.createObjectURL(new Blob([bytes]))` por entrada para downloads, sem requisição ao servidor.
- Criptografia não tratada: ZipCrypto é quebrado em 3 bytes de texto conhecido; WinZip AES-256 (APPNOTE 7.0, campo extra AE-2 com HMAC-SHA1) não é implementado aqui.
- ZIP64 (APPNOTE 4.5+) estende os campos de tamanho/offset de 32 bits para 64 bits via campos extras; necessário para arquivos ou entradas individuais acima de 4 GiB (2³² − 1 bytes).
Exemplos
Visualizar Conteúdo do Arquivo
Visualize a lista de arquivos dentro de um arquivo ZIP diretamente no navegador, sem precisar instalar software de extraçãoExtrair Arquivos Individuais
Baixe apenas o arquivo que você precisa do arquivo compactado, sem extrair tudoExtração em Lote
Extraia e baixe todos os arquivos do arquivo compactado com um único cliquePerguntas frequentes
O ZIP é enviado para o servidor para a extração?
Não. A página lê o ZIP localmente via API FileReader e descompacta as entradas no navegador usando JSZip. Os arquivos nunca saem do seu dispositivo. Você pode confirmar pela aba Network durante a extração.
Quais variantes de ZIP ele suporta?
Arquivos ZIP padrão usando compressão DEFLATE (a variante mais comum). Entradas Stored (sem compressão) também funcionam. ZIP64 (para arquivos acima de 4 GB) é suportado na maioria das versões. Entradas criptografadas (protegidas por senha) e formatos 7Z, RAR, TAR não são suportados — use uma ferramenta dedicada para esses.
Consigo extrair ZIPs protegidos por senha?
Em geral, não. O JSZip não lida com entradas criptografadas com ZipCrypto nem com AES. Descriptografe primeiro com 7-Zip ou WinRAR no desktop e, depois, reempacote e envie aqui se precisar inspecionar a estrutura.
E se o ZIP tiver nomes em chinês ou japonês?
A página lê os nomes dos arquivos como UTF-8 por padrão. ZIPs antigos criados no Windows podem armazenar os nomes em GBK (chinês) ou Shift_JIS (japonês) sem ativar a flag de UTF-8 — esses aparecem embaralhados. Recrie o ZIP com uma ferramenta que reconheça UTF-8, ou use o 7-Zip no desktop com a configuração de code page correta.
Qual é o limite de tamanho de arquivo?
A memória do navegador. Desktops modernos lidam com ZIPs de 1 GB ou mais; navegadores de celular ficam sem memória por volta de algumas centenas de MB. Para arquivos muito grandes, use uma ferramenta de desktop que faça streaming a partir do disco.
Consigo visualizar o conteúdo dos arquivos sem extrair?
Sim para arquivos de texto — clique em qualquer entrada e a página mostra o conteúdo. Imagens aparecem como miniaturas. Entradas binárias (executáveis, ZIPs aninhados) só mostram metadados; baixe para inspecionar.
Arquivos ocultos e dotfiles são extraídos?
Sim. O ZIP não tem o conceito de atributo 'oculto' — todas as entradas são visíveis. Nomes de arquivo começando com ponto (.gitignore, .env) são extraídos normalmente; trate-os como arquivos comuns.
Ferramentas relacionadas
Renomeação em lote de arquivos
Ferramenta online gratuita para renomear arquivos em lote. Prefixo/sufixo, numeração sequencial, localizar e substituir, alterar maiúsculas, modificar extensões. Pré-visualização ao vivo, detecção de duplicatas, download ZIP com um clique — tudo local no navegador.
Decodificador QR
Decodificador de código QR online gratuito. Carregue imagens, arraste e solte, ou cole da área de transferência para escanear e decodificar códigos QR. Tudo no navegador.
Codificador/Decodificador Base64
Codificador e decodificador Base64 online gratuito suportando texto UTF-8, caracteres chineses e imagens. Codificação/decodificação em tempo real, sem instalação necessária, processamento local focado em privacidade.
Codificador de Entidades HTML
Codificador e decodificador de entidades HTML online gratuito convertendo caracteres especiais em entidades HTML. Previna ataques XSS, garanta exibição segura de HTML.
Ferramenta de Escape JSON
Ferramenta de escape JSON online gratuita para escape e unescape rápido de strings JSON. Gerencie aspas, novas linhas, tabulações e caracteres especiais, fácil incorporação em código.
Conversor de Excel para SQL
Ferramenta online de conversão de Excel para SQL. Suporta formatos .xlsx e .xls com seleção de múltiplas planilhas. Converta dados de planilhas em instruções SQL INSERT localmente.
