DEFLATE thô (.deflate)

IETF Tiêu chuẩn

DEFLATE là thuật toán nén dữ liệu không mất dữ liệu phổ biến nhất trong lịch sử điện toán, cung cấp năng lượng cho các kho lưu trữ ZIP, luồng GZIP, hình ảnh PNG và nén web HTTP trong hơn ba thập kỷ.

Chuyển đổi GZIP sang DEFLATE

Trình chuyển đổi từ GZIP sang DEFLATE miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp DEFLATE bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp DEFLATE bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

78 9C / 78 01 / 78 DA

BIỂU DIỄN ASCII: xœ / x. / xÚ

Tiêu chuẩn hóa: IETF RFC 1951 / RFC 1950 (zlib)

Thông số kỹ thuật

Kiến trúc ContainerRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
NénLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
Thứ tự byte EndiannessLittle-Endian bit-packing order
Không gian màuN/A (Data Compression Stream)
Kênh & Cấu trúcRaw binary or text data stream
Kích thước tối đaUnbounded stream length
Độ trong suốt100% bit-exact lossless data reproduction
Truyền phát & Tăng dầnBlock-based bitstream supports arbitrary continuous byte streaming

Ma trận so sánh kỹ thuật: DEFLATE so với các đối thủ

Thuộc tính kỹ thuậtDEFLATE (Hiện tại)GZBROTLIZSTD
Tiêu chuẩn hóaIETF RFC 1951 (Thô) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Cửa sổ trượtTối đa 32 KilobyteTối đa 32 KilobyteLên đến 16 MegabyteLên đến 2 Gigabyte
Chế độ tổng kiểm traAdler-32 (trong trình bao bọc zlib)CRC-32 (trong trình bao bọc gzip)Không có sẵn trong luồngxxHash64 (băm nhanh 64-bit)
Sử dụng hàng ngàyHình ảnh PNG, luồng PDF, ZIPUnix .tar.gz, HTTP gzipPhông chữ web (WOFF2), HTTP brNhân Linux, cơ sở dữ liệu, chơi game

Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex

Giải nén thất bại với thông báo 'Z_DATA_ERROR: incorrect data check'.

Nguyên nhân gốc rễ: Không khớp tổng kiểm tra Adler-32 4-byte ở cuối luồng được bọc zlib.

Khắc phục: Bỏ qua xác thực Adler-32 bằng cách sử dụng inflate thô hoặc sửa chữa bằng File2File Deflate Recovery.

Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp

Trình phân tích cú pháp DEFLATE phải xác thực nghiêm ngặt các mã xây dựng cây Huffman để ngăn chặn việc ghi con trỏ vượt quá giới hạn.

Các Véc-tơ Tấn công Đã biết

  • Bảng độ dài bit cây Huffman động không đầy đủ hoặc đăng ký quá mức gây ra lỗi đọc bộ nhớ không hợp lệ.
  • Bom giải nén (zip bomb) mở rộng các tải trọng nhỏ thành hàng trăm gigabyte RAM.
  • Đọc quá giới hạn bộ đệm trong mã khoảng cách cửa sổ trượt chưa được xác thực.

Thực tiễn Tốt nhất về Phòng thủ:

Nguồn gốc lịch sử & Các cột mốc

1996Peter Deutsch chính thức hóa DEFLATE thành IETF RFC 1951 và zlib thành RFC 1950.
1995Jean-loup Gailly và Mark Adler phát hành zlib, thư viện tham chiếu C phổ thông cho DEFLATE.
1991Phil Katz phát minh ra DEFLATE cho PKZIP 2.0 để thay thế các thuật toán Implode và Reduce cũ hơn.

Ưu điểm & Lợi ích chính

  • Tiêu chuẩn toàn cầu không thể tranh cãi: được triển khai trong phần cứng, hệ điều hành và mọi môi trường thực thi lập trình.
  • Thiết kế miễn phí bản quyền và bằng sáng chế đảm bảo quyền truy cập mở trên toàn bộ ngành công nghiệp điện toán.
  • Giải nén nhanh với mức tiêu thụ bộ nhớ tối thiểu (chỉ yêu cầu bộ nhớ cửa sổ trượt 32 KB).

Hạn chế & Nhược điểm kỹ thuật

  • Cửa sổ trượt giới hạn ở 32 KB, làm giảm hiệu quả nén trên các tệp lớn có các phần trùng lặp ở khoảng cách xa.
  • Tỷ lệ nén trên các tài sản web hiện đại thấp hơn so với các thuật toán mới hơn như Brotli và Zstandard.
  • Các luồng DEFLATE thô thiếu siêu dữ liệu tự mô tả hoặc khung chứa nếu không có trình bao bọc zlib hoặc gzip.

Thông tin kỹ thuật thú vị

  • Phil Katz đã phát minh ra DEFLATE sau khi bị Unisys kiện vì thuật toán LZW được cấp bằng sáng chế sử dụng trong các tiện ích PKARC thời kỳ đầu.
  • Các byte tiêu đề zlib chuẩn '78 9C' cho biết nén mặc định, '78 01' nén thấp và '78 DA' nén tối đa.
  • Mọi hình ảnh PNG trên Trái đất đều sử dụng DEFLATE để nén các khối pixel IDAT của nó.

Các câu hỏi kỹ thuật thường gặp

Sự khác biệt giữa DEFLATE, zlib và gzip là gì?

DEFLATE là thuật toán nén thô (RFC 1951). Zlib bao bọc DEFLATE bằng một tiêu đề 2 byte và mã kiểm tra Adler-32 (RFC 1950). Gzip bao bọc DEFLATE bằng siêu dữ liệu tệp và mã kiểm tra CRC-32 (RFC 1952).

Tại sao định dạng PNG lại sử dụng DEFLATE?

Định dạng PNG được tạo ra vào năm 1995 để thay thế GIF mà không dùng các thuật toán LZW có bản quyền, và đã chọn DEFLATE mở, miễn phí bản quyền để làm thuật toán nén.

Làm thế nào để giải nén tệp .deflate thô?

Bạn có thể giải nén các luồng dữ liệu thô DEFLATE hoặc zlib thành các tệp chưa nén ban đầu bằng File2File.app trực tiếp trên trình duyệt web của bạn.