DEFLATE thô (.deflate)
IETF Tiêu chuẩnDEFLATE 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ữ 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 DABIỂ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 Container | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Nén | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Thứ tự byte Endianness | Little-Endian bit-packing order |
| Không gian màu | N/A (Data Compression Stream) |
| Kênh & Cấu trúc | Raw binary or text data stream |
| Kích thước tối đa | Unbounded stream length |
| Độ trong suốt | 100% bit-exact lossless data reproduction |
| Truyền phát & Tăng dần | Block-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ật | DEFLATE (Hiện tại) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Tiêu chuẩn hóa | IETF RFC 1951 (Thô) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Cửa sổ trượt | Tối đa 32 Kilobyte | Tối đa 32 Kilobyte | Lên đến 16 Megabyte | Lên đến 2 Gigabyte |
| Chế độ tổng kiểm tra | Adler-32 (trong trình bao bọc zlib) | CRC-32 (trong trình bao bọc gzip) | Không có sẵn trong luồng | xxHash64 (băm nhanh 64-bit) |
| Sử dụng hàng ngày | Hình ảnh PNG, luồng PDF, ZIP | Unix .tar.gz, HTTP gzip | Phông chữ web (WOFF2), HTTP br | Nhâ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
Ư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.
Các cặp chuyển đổi DEFLATE liên quan
Việc chuyển đổi luồng GZIP sang định dạng Raw DEFLATE giúp loại bỏ lớp vỏ bọc tệp bên ngoài và siêu dữ liệu tiêu đề, chỉ để lại phần tải trọng được nén cho các giao thức mạng chuyên dụng và các kho lưu trữ cấp thấp.
Chuyển đổi DEFLATE thô sang luồng GZIP gói tải trọng được nén bên trong một thùng chứa tiêu chuẩn với các tiêu đề siêu dữ liệu để hệ điều hành và công cụ web có thể đọc chính xác.