DEFLATE bruto (.deflate)

IETF Padrão

DEFLATE é um dos algoritmos de compactação de dados sem perdas amplamente utilizados na história da computação. Há mais de três décadas, é usado em arquivos ZIP, fluxos GZIP, imagens PNG e na compactação HTTP da web.

Converter GZIP para DEFLATE

Conversor gratuito de GZIP para DEFLATE no navegador. Converta arquivos instantaneamente no seu dispositivo.

Inspeção e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos DEFLATE pela sequência inicial de bytes:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

Assinatura do arquivo em bytes (magic bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos DEFLATE pela sequência inicial de bytes:

ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):

O DEFLATE bruto não tem assinatura fixa; fluxos encapsulados em zlib começam com bytes CMF/FLG variáveis

REPRESENTAÇÃO ASCII: Sem assinatura fixa

Padronização: IETF RFC 1951 / RFC 1950 (zlib)

Especificações técnicas

Estrutura do contêinerFluxo de bits bruto da RFC 1951 ou fluxo zlib da RFC 1950, com cabeçalho de 2 bytes e soma de verificação Adler-32
CompressãoDicionário deslizante LZ77 (janela de até 32 KB) combinado com codificação de entropia Huffman estática ou dinâmica
Ordem dos bytes (endianness)Ordem little-endian para empacotamento de bits
Espaços de corNão se aplica (fluxo de compactação de dados)
Canais e EstruturaFluxo de dados binários ou de texto bruto
Dimensões MáximasComprimento de fluxo ilimitado
TransparênciaPreserva os dados sem perdas, com correspondência exata bit a bit
Streaming e ProgressivoO fluxo de bits baseado em blocos permite transmitir bytes continuamente

Matriz de comparação técnica: DEFLATE e formatos concorrentes

Atributo técnicoDEFLATE (Atual)GZBROTLIZSTD
PadronizaçãoIETF RFC 1951 (Bruto) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Janela deslizanteMáximo de 32 quilobytesMáximo de 32 quilobytesAté 16 megabytesAté 2 gigabytes
Modo de soma de verificaçãoAdler-32 (no cabeçalho zlib)CRC-32 (no cabeçalho gzip)Nenhuma soma de verificação integrada ao fluxoxxHash64 (hash rápido de 64 bits)
Usos comunsImagens PNG, fluxos PDF, ZIPArquivos .tar.gz no Unix, gzip via HTTPFontes da web (WOFF2), br via HTTPKernel Linux, bancos de dados e jogos

Modos comuns de corrupção e guia de recuperação com editor hexadecimal

A descompactação falha com o erro "Z_DATA_ERROR: incorrect data check".

Causa principal: A soma de verificação Adler-32 de 4 bytes no fim do fluxo zlib não corresponde aos dados.

Recuperação: Ignore a verificação Adler-32 usando inflate bruto ou repare o arquivo com a ferramenta de recuperação Deflate do File2File.app.

Análise de segurança e vetores de ataque a analisadores

Analisadores DEFLATE devem validar rigorosamente os códigos de construção da árvore Huffman para evitar gravações de ponteiros fora dos limites.

Vetores de ataque conhecidos

  • Leituras inválidas de memória causadas por tabelas de comprimento de códigos incompletas ou superdimensionadas na árvore Huffman dinâmica.
  • Bomba de descompactação que expande arquivos minúsculos para centenas de gigabytes de dados na memória.
  • Leitura além dos limites do buffer em códigos de distância não validados da janela deslizante.

Melhores práticas defensivas: Defina limites máximos para a memória alocada e a taxa de expansão durante a descompactação.

Origens históricas e marcos

1996Peter Deutsch formaliza o DEFLATE como a RFC 1951 da IETF e o zlib como a RFC 1950.
1995Jean-loup Gailly e Mark Adler lançam o zlib.
1991Phil Katz cria o DEFLATE para o PKZIP 2.0, substituindo os antigos algoritmos Implode e Reduce.

Principais vantagens

  • É um padrão global implementado em hardware, sistemas operacionais e ambientes de execução de linguagens de programação.
  • Seu design não tem patentes nem royalties, garantindo acesso aberto em todo o setor de computação.
  • Descompacta rapidamente e usa pouca memória: requer apenas uma janela deslizante de 32 KB.

Limitações técnicas e desvantagens

  • A janela deslizante é limitada a 32 KB, o que reduz a eficiência da compactação em arquivos grandes com dados redundantes distantes.
  • Compacta menos os recursos modernos da web do que algoritmos mais recentes, como Brotli e Zstandard.
  • Fluxos DEFLATE brutos não têm metadados próprios nem estrutura de contêiner sem os cabeçalhos zlib ou gzip.

Curiosidades técnicas

  • Phil Katz criou o DEFLATE após ser processado pela Unisys por causa do algoritmo LZW patenteado usado nos primeiros utilitários PKARC.
  • Os bytes 78 9C no cabeçalho zlib indicam compactação padrão; 78 01, compactação baixa; e 78 DA, compactação máxima.
  • Todas as imagens PNG usam DEFLATE para compactar os blocos de pixels IDAT.

Perguntas técnicas frequentes

Qual é a diferença entre DEFLATE, zlib e gzip?

DEFLATE é o algoritmo de compactação bruto (RFC 1951). O zlib o encapsula com um cabeçalho de 2 bytes e uma soma de verificação Adler-32 (RFC 1950). O gzip acrescenta metadados de arquivo e uma soma de verificação CRC-32 (RFC 1952).

Por que o PNG usa o DEFLATE?

O formato PNG foi criado em 1995 para substituir o GIF sem usar o algoritmo LZW patenteado. Para a compactação, adotou o DEFLATE, aberto e livre de royalties.

Como posso descomprimir um arquivo .deflate bruto?

Você pode descompactar fluxos brutos de bytes DEFLATE ou zlib em arquivos originais diretamente no navegador, usando o File2File.app.