Nén File ZIP
Tạo file ZIP ngay trên trình duyệt với mã hóa AES-256, giữ nguyên cấu trúc thư mục và hỗ trợ ZIP64 cho file lớn. Hoàn toàn riêng tư, không tải lên máy chủ.
Về công cụ nén File
Công cụ này tạo file ZIP từ nhiều file. Tải lên các file của bạn, chọn cài đặt nén và tạo file ZIP chỉ với một cú nhấp chuột. Tất cả quá trình xử lý diễn ra trên trình duyệt của bạn để đảm bảo riêng tư hoàn toàn. Xem thêm Giải nén ZIP và Gộp File.
Tệp ZIP là gì và khi nào tôi nên dùng?
Tệp ZIP là một vùng chứa gói nhiều tệp và thư mục vào một kho .zip duy nhất đồng thời nén chúng bằng thuật toán DEFLATE (RFC 1951). Định dạng được Phil Katz tạo năm 1989 cho PKZIP và nay được chuẩn hóa thành ISO/IEC 21320. Dùng tệp ZIP khi bạn cần (1) gửi nhiều tệp trong một tệp đính kèm email duy nhất, (2) thu nhỏ các thư mục lớn để lưu trữ hoặc truyền, (3) bảo toàn cấu trúc và dấu thời gian của thư mục giữa các hệ thống, (4) phân phối phần mềm cần được tổ chức tại đích, hoặc (5) giảm thời gian tải lên bằng cách giảm tổng số byte. ZIP được hỗ trợ tự nhiên trên Windows, macOS, Linux, iOS, Android và mọi trình duyệt hiện đại, khiến nó trở thành định dạng kho lưu trữ di động nhất từng được tạo ra. Để mã hóa không hỗ trợ hoặc nén tối đa, hãy cân nhắc 7-Zip (.7z) hoặc tar.gz.
Tệp ZIP thực sự có thể nén dữ liệu của tôi đến mức nào?
Tỷ lệ nén hoàn toàn phụ thuộc vào đầu vào. Các định dạng đã được nén — JPEG, PNG, MP4, MP3, PDF — giảm dưới 5% vì chúng có độ dư thừa không đáng kể. Văn bản thuần, mã nguồn, CSV, JSON, XML và hình ảnh chưa nén (BMP, TIFF) thường nén còn 20–40% kích thước ban đầu, đôi khi thấp hơn. Bản kết xuất cơ sở dữ liệu và tệp nhật ký với các mẫu lặp lại có thể nén còn 5–10% của bản gốc. DEFLATE hoạt động bằng cách thay thế các chuỗi byte lặp bằng tham chiếu ngược và sau đó mã hóa Huffman kết quả, vì vậy nó xuất sắc với văn bản có cấu trúc và thất bại với dữ liệu ngẫu nhiên hoặc đã nén trước. Nếu kho lưu trữ của bạn chỉ giảm kích thước rất ít, nội dung có thể đã được nén — đó là bình thường, không phải lỗi công cụ.
Tệp ZIP có an toàn không và tôi có thể bảo vệ bằng mật khẩu không?
ZIP chuẩn hỗ trợ hai chế độ mã hóa. Mật mã ZipCrypto cũ (từ 1989) đã bị phá vỡ về mặt mật mã — các cuộc tấn công văn bản thuần đã biết khôi phục mật khẩu trong vài giây bằng các công cụ hiện đại, vì vậy nó chỉ cung cấp quyền riêng tư thông thường. Mã hóa AES-256 (do WinZip thêm vào và chuẩn hóa năm 2003) thực sự mạnh; với mật khẩu ngẫu nhiên dài, nó chống lại tất cả các cuộc tấn công thực tế đã biết. Khi tạo kho lưu trữ được bảo vệ bằng mật khẩu, luôn chọn AES-256 nếu công cụ của bạn cung cấp, không phải ZipCrypto mặc định. Lưu ý rằng ngay cả ZIP được mã hóa AES cũng làm rò rỉ tên và kích thước tệp theo mặc định — thư mục trung tâm không được mã hóa. Để có quyền riêng tư đầy đủ về tên, hãy dùng 7-Zip với tùy chọn "mã hóa tên tệp".
Thư mục trung tâm ZIP là gì và tại sao nó quan trọng?
Mọi tệp ZIP kết thúc bằng thư mục trung tâm — bảng nội dung liệt kê tên, kích thước nén, kích thước gốc, tổng kiểm tra CRC-32, phương pháp nén và vị trí trong tệp của mỗi mục. Thiết kế chỉ mục cuối tệp này cho phép bạn thêm tệp vào ZIP mà không cần viết lại toàn bộ kho lưu trữ (các bản dựng DOCX và APK khai thác điều này) và cho phép trình đọc trích xuất một tệp mà không cần quét toàn bộ kho lưu trữ. Nó cũng giải thích một điểm kỳ lạ: làm hỏng các byte đầu tiên của ZIP thường vẫn cho phép khôi phục vì thư mục trung tâm ở cuối trỏ đến tất cả các mục. Định dạng được ghi trong đặc tả PKWARE APPNOTE.TXT. Các tệp polyglot như JAR (kho lưu trữ Java) và APK (gói Android) chỉ là ZIP với phép thuật bổ sung — JVM quét thư mục trung tâm để tìm các tệp class.
Tại sao tệp ZIP của tôi lại lớn so với thư mục gốc?
Tệp ZIP có tổng phí trên mỗi mục khoảng 30 byte cho tiêu đề cục bộ cộng thêm 46+ byte trong thư mục trung tâm, nên kho lưu trữ chứa hàng nghìn tệp nhỏ có thể lớn hơn tổng nội dung của chúng. Các tiêu đề lưu trữ tên tệp, dấu thời gian và siêu dữ liệu nén. Đối với thư mục đầy tệp văn bản 100 byte, các tiêu đề có thể nặng hơn dữ liệu; đối với thư mục video nhiều megabyte, tổng phí không đáng kể. Nếu bạn phải lưu trữ nhiều tệp nhỏ một cách hiệu quả, trước tiên hãy nối chúng vào một tar (không có tổng phí nén trên mỗi tệp) rồi nén tar bằng gzip hoặc zstd — tar.gz thường xuyên đánh bại ZIP cho các bộ sưu tập tệp nhỏ. ZIP cũng tắt nén trên các tệp sẽ phình ra sau DEFLATE (JPEG đã nén, v.v.) và lưu chúng bằng phương pháp 0 (đã lưu trữ).

Sự khác biệt giữa ZIP, 7Z, RAR, TAR và GZ là gì?
ZIP kết hợp lưu trữ và nén trong một định dạng dùng DEFLATE trên mỗi tệp, với hỗ trợ rộng rãi nhưng nén vừa phải. 7Z (định dạng của 7-Zip, 1999) hỗ trợ LZMA2 và đạt nén tốt hơn ZIP 30–50% cho văn bản nhưng yêu cầu phần mềm không mặc định trên Windows. RAR (1993, độc quyền) tương tự 7Z về hiệu quả và hỗ trợ bản ghi khôi phục có thể xây dựng lại kho lưu trữ bị hỏng, nhưng tạo RAR yêu cầu giấy phép trả phí. TAR (lưu trữ băng, Unix 1979) chỉ gói tệp mà không nén — gần như luôn được kết hợp với gzip (.tar.gz), bzip2 (.tar.bz2) hoặc zstd (.tar.zst). Mẫu tar+gzip bảo toàn quyền Unix, liên kết tượng trưng và quyền sở hữu mà ZIP mất. Để tính di động tối đa, chọn ZIP; để nén tối đa, chọn 7Z hoặc tar.zst; để sao lưu hệ thống Unix, chọn tar; để giải nén nhanh nhất, chọn zstd.
Có giới hạn kích thước tệp trong ZIP không, và ZIP64 là gì?
Định dạng ZIP gốc dùng trường 32 bit cho kích thước và số đếm, giới hạn các tệp riêng lẻ ở 4 GB, tổng kích thước kho lưu trữ ở 4 GB và các mục ở 65.535 tệp. Các giới hạn này không đáng kể vào năm 1989 nhưng trở thành cản trở vào những năm 2000. ZIP64 (được thêm vào năm 2001) mở rộng mọi giới hạn lên 64 bit, cho phép các tệp và kho lưu trữ lên tới 16 EB (thực tế không giới hạn) và các mục lên 2^64 tệp. Các công cụ hiện đại tự động chuyển sang ZIP64 khi cần, nhưng các công cụ cũ hơn (trình giải nén tích hợp Windows XP, một số hệ thống nhúng) từ chối kho lưu trữ ZIP64. Nếu bạn cần chia sẻ kho lưu trữ lớn với người dùng trên hệ thống cũ, hãy chia kho lưu trữ thành các tập (.zip, .z01, .z02) thay vào đó. Định dạng kho lưu trữ chia có trước ZIP64.
Công cụ này tạo ZIP trong trình duyệt mà không tải lên như thế nào?
Các trình duyệt hiện đại phơi bày API File System Access và API Compression Streams, cho phép JavaScript đọc tệp từ đĩa cục bộ của bạn, truyền chúng qua nén DEFLATE và lắp ráp một ZIP hợp lệ hoàn toàn trong bộ nhớ. Các thư viện như JSZip và fflate triển khai đặc tả định dạng tệp ZIP (PKWARE APPNOTE.TXT) trong JavaScript thuần hoặc WebAssembly. Người dùng chọn tệp qua hộp thoại kéo-thả hoặc bộ chọn tệp, trình duyệt giao byte cho thư viện, thư viện ghi các tiêu đề tệp cục bộ, dữ liệu nén và thư mục trung tâm vào một Blob, và trình duyệt lưu Blob qua liên kết tải xuống. Không có gì rời khỏi máy tính của bạn — mở bảng mạng để xác minh không có tải lên nào. Điều này hoạt động cho các kho lưu trữ lên tới khoảng 4 GB trên hầu hết trình duyệt.
Làm sao để giữ nguyên cấu trúc thư mục bên trong ZIP?
Dùng nút 'Thêm Thư Mục' thay vì (hoặc cùng với) vùng kéo-thả file. Bộ chọn thư mục đọc đường dẫn tương đối của từng file — trình duyệt phơi bày nó dưới dạng webkitRelativePath, ví dụ src/components/Button.js — và công cụ ghi đường dẫn có dấu gạch chéo đó làm tên mục. Cả hai luồng mã ZIP (DEFLATE tiêu chuẩn và mã hóa AES-256) đều tôn trọng đường dẫn, nên các nút thư mục được tái tạo tự động khi giải nén. Điều này quan trọng với các bản build: import tương đối, tham chiếu manifest và đường dẫn tài nguyên sẽ hỏng ngay khi thư mục bị làm phẳng, đó là lý do các công cụ máy tính như 7-Zip giữ nguyên cấu trúc theo mặc định. Nếu hai file có cùng đường dẫn tương đối nhưng khác kích thước, công cụ thêm ' (1)', ' (2)' trước phần mở rộng để không mục nào âm thầm ghi đè mục kia. Thư mục rỗng không được lưu — ZIP ghi nhận file, và một thư mục tồn tại chỉ vì có file bên trong.
Mã hóa ZIP trên trình duyệt có riêng tư hơn các công cụ zip online không?
Có, và sự khác biệt là cốt lõi. Hầu hết các trang 'zip online' và 'bảo vệ zip bằng mật khẩu' tải file của bạn lên máy chủ của họ, nén và mã hóa tại đó, rồi gửi lại liên kết tải xuống — nghĩa là file ở dạng văn bản rõ (và thường cả mật khẩu) của bạn đi qua một bên thứ ba mà bạn phải tin rằng họ không ghi log, quét hay rò rỉ. Công cụ này không bao giờ tải lên bất cứ thứ gì: nén DEFLATE và mã hóa AES-256 (WinZip AE-2, PBKDF2-HMAC-SHA1) chạy hoàn toàn trên trình duyệt của bạn bằng JavaScript và Web Crypto API. Mật khẩu của bạn được dùng để dẫn xuất khóa cục bộ và không bao giờ được truyền đi. Bạn có thể mở bảng Mạng của trình duyệt và xác nhận không có yêu cầu ra ngoài nào khi tạo kho lưu trữ. Với tài liệu mật, mã nguồn hay sản phẩm giao cho khách hàng, mã hóa phía máy khách loại bỏ hoàn toàn máy chủ khỏi mô hình mối đe dọa của bạn — bản sao duy nhất của dữ liệu chưa mã hóa nằm trên chính máy của bạn.
