Суров DEFLATE (.deflate)

IETF Стандарт

DEFLATE е най-разпространеният алгоритъм за компресиране без загуба на данни в историята на изчислителната техника, захранващ ZIP архиви, GZIP потоци, PNG изображения и уеб компресия по HTTP в продължение на повече от три десетилетия.

Конвертиране на GZIP към DEFLATE

Безплатен конвертор от GZIP към DEFLATE в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Инспектиране и метаданни

Операционните системи и файловите анализатори идентифицират DEFLATE файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

100% поверително конвертиране в браузъра - файловете никога не напускат вашето устройство

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на хедъра (Magic Bytes)

Операционните системи и файловите анализатори идентифицират DEFLATE файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

78 9C / 78 01 / 78 DA

ASCII ПРЕДСТАВЯНЕ: xœ / x. / xÚ

Стандартизация: IETF RFC 1951 / RFC 1950 (zlib)

Технически спецификации

Контейнерна архитектураRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
КомпресияLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Поредност на байтовете (Endianness)Little-Endian bit-packing order
Цветови пространстваN/A (Data Compression Stream)
Канали и структураRaw binary or text data stream
Максимални размериUnbounded stream length
Прозрачност100% bit-exact lossless data reproduction
Стрийминг и прогресивно зарежданеBlock-based bitstream supports arbitrary continuous byte streaming

Техническа сравнителна матрица: DEFLATE спрямо конкуренти

Технически атрибутDEFLATE (Текущ)GZBROTLIZSTD
СтандартизацияIETF RFC 1951 (Суров) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Плъзгащ се прозорецМаксимум 32 килобайтаМаксимум 32 килобайтаДо 16 мегабайтаДо 2 гигабайта
Режим на контролна сумаAdler-32 (в zlib обвивка)CRC-32 (в gzip обвивка)Няма вградена в потокаxxHash64 (64-битов бърз хеш)
Ежедневна употребаPNG изображения, PDF потоци, ZIPUnix .tar.gz, HTTP gzipУеб шрифтове (WOFF2), HTTP brLinux ядро, бази данни, игри

Често срещани режими на повреда и ръководство за хекс възстановяване

Декомпресията е неуспешна с грешка 'Z_DATA_ERROR: incorrect data check'.

Първопричина: Несъответствие в 4-байтовата контролна сума Adler-32 в края на обвития в zlib поток.

Възстановяване: Заобиколете проверката на Adler-32, като използвате суров inflate, или поправете с File2File Deflate Recovery.

Анализ на сигурността и вектори на атака към парсера

Анализаторите на DEFLATE трябва стриктно да валидират кодовете за изграждане на дървото на Хофман, за да предотвратят записи на указатели извън позволените граници.

Известни вектори на атака

  • Непълни или препълнени таблици с дължина на битовете за динамично дърво на Хофман, водещи до невалидни четения от паметта.
  • Декомпресионна бомба (zip бомба), разширяваща малки полезни данни в стотици гигабайти RAM.
  • Прекомерно четене от буфера (buffer over-read) при невалидирани кодове за разстояние на плъзгащия се прозорец.

Защитни добри практики:

Исторически произход и етапи

1996Питър Дойч официално оформя DEFLATE като IETF RFC 1951 и zlib като RFC 1950.
1995Жан-Луп Гайли и Марк Адлер пускат zlib - универсалната C референтна библиотека за DEFLATE.
1991Фил Кац изобретява DEFLATE за PKZIP 2.0, за да замени по-старите алгоритми Implode и Reduce.

Основни предимства и плюсове

  • Безспорният глобален стандарт: реализиран в хардуера, операционните системи и всяка една програмна среда за изпълнение.
  • Дизайн без патенти и лицензионни такси, гарантиращ отворен достъп в цялата компютърна индустрия.
  • Бърза декомпресия с минимален отпечатък в паметта (изисква само 32 KB памет за плъзгащ се прозорец).

Технически ограничения и минуси

  • Плъзгащият се прозорец е ограничен до 32 KB, което намалява ефективността на компресията при големи файлове с далечни повтарящи се данни.
  • По-ниски коефициенти на компресия при съвременни уеб ресурси в сравнение с по-нови алгоритми като Brotli и Zstandard.
  • Суровите DEFLATE потоци нямат самоописващи се метаданни или обвивка на контейнер без zlib или gzip обвивки.

Интересни технически факти

  • Фил Кац изобретява DEFLATE, след като е съден от Unisys заради патентования алгоритъм LZW, използван в ранните помощни програми PKARC.
  • Стандартните байтове за zlib заглавие '78 9C' показват стандартна компресия, '78 01' - ниска компресия, а '78 DA' - максимална компресия.
  • Всяко PNG изображение на Земята използва DEFLATE за компресиране на своите IDAT блокове с пиксели.

Често задавани технически въпроси

Каква е разликата между DEFLATE, zlib и gzip?

DEFLATE е суровият алгоритъм за компресия (RFC 1951). Zlib увива DEFLATE с 2-байтов хедър и Adler-32 контролна сума (RFC 1950). Gzip увива DEFLATE с метаданни на файла и CRC-32 контролна сума (RFC 1952).

Защо PNG използва DEFLATE?

Форматът PNG е създаден през 1995 г. като заместител на GIF, без да използва патентовани LZW алгоритми, като за компресия е избран отвореният и безплатен за ползване DEFLATE.

Как мога да декомпресирам суров .deflate файл?

Можете да декомпресирате сурови байтови потоци DEFLATE или zlib в оригинални недекомпресирани файлове с помощта на File2File.app директно във вашия уеб браузър.