Chuyển đến nội dung

Công cụ file nén không bao giờ giữ lại file của bạn

Tám công cụ để mở và tạo file nén, miễn phí và không cần cài đặt. Không lưu trữ gì cả, và file nén bạn mở ở đây được đọc ngay tại nơi nó đang nằm.

8 công cụ, không cần đăng ký, không watermark

Nếu bạn nhận được một file nén mà không mở được, trang giải nén nào cũng dùng được — file được nhận diện qua chính các byte của nó, nên trang nào cũng mở được mọi định dạng chúng tôi hỗ trợ. Nếu bạn cần tạo file nén để gửi đi, Tạo file ZIP gần như luôn là lựa chọn đúng. Phần ghi chú bên dưới danh sách giải thích file nén thực sự lưu những gì, vì sao nén ảnh du lịch của bạn chẳng tiết kiệm được gì, và khi nào trình duyệt không phải công cụ phù hợp.

Giải nén file

4 công cụ

Xem bên trong file ZIP, RAR, 7z hoặc TAR có gì và lấy ra những file bạn cần — không phải cài đặt gì.

Tạo file nén

3 công cụ

Gộp cả đống file vào một file nén mở được ở mọi nơi, nén ngay trên thiết bị của bạn.

Chuyển đổi file nén

1 công cụ

Biến file nén cần phần mềm đặc biệt thành file nén mở được ở mọi nơi.

Đóng gói và nén không phải là một

Hai việc khác nhau thường bị gộp chung dưới hai chữ “file nén”. Đóng gói là gom nhiều file vào một file, giữ nguyên tên và thư mục của chúng. Nén là làm cho dữ liệu nhỏ đi. TAR chỉ đóng gói — một file .tar nặng bằng tổng mọi thứ bên trong cộng lại. Gzip chỉ nén, và mỗi lần chỉ nén một luồng, đó là lý do .tar.gz ra đời: đóng gói trước, rồi nén cả gói. ZIP làm cả hai cùng lúc, cho từng file, và giữ một bảng mục lục những gì có bên trong.

Sự khác biệt đó quyết định định dạng hoạt động ra sao khi bạn dùng. Vì ZIP lưu mục lục ở cuối file và nén riêng từng file, nó có thể liệt kê một file nén mười gigabyte ngay lập tức và lấy ra một file ở giữa mà không đụng tới phần còn lại — đó chính xác là cách trình đọc ZIP của chúng tôi hoạt động, không giải nén gì cho đến khi bạn yêu cầu. Một file nén solid nén mọi thứ thành một luồng liên tục, nên phần lặp lại giữa các file được phát hiện và kết quả nhỏ hơn, đôi khi nhỏ hơn rất nhiều với nhiều file nhỏ giống nhau như mã nguồn hay file log. Cái giá phải trả là không có cách nào nhanh để lấy một file ở giữa: mọi thứ phía trước nó phải được giải nén trước. TAR.GZ vốn là solid, 7z nén theo từng khối solid, còn RAR ở đây được đọc tuần tự từ đầu chứ không qua mục lục.

Nội dung đã nén thì không nén thêm được nữa. JPEG, PNG, MP3, MP4, PDF và mọi file Office hiện đại đều đã được nén sẵn, và thuật toán deflate tốn thời gian với chúng mà chẳng được gì — đôi khi còn thêm vài byte. Vì vậy file zip một thư mục ảnh ra đúng bằng dung lượng thư mục, và người ta tưởng công cụ bị hỏng. Tạo file ZIP nhận ra các định dạng này và lưu nguyên như cũ thay vì giả vờ nén, nên nó xong ngay với ảnh chụp và mất thời gian hơn với văn bản.

Siêu dữ liệu trong file nén không giống siêu dữ liệu trên ổ đĩa của bạn. ZIP lưu thời gian sửa đổi theo định dạng MS-DOS, có độ chính xác hai giây và không biểu diễn được ngày trước năm 1980 hay sau năm 2099 — ở đây, ngày nằm ngoài khoảng đó được đưa về giới hạn gần nhất thay vì để cả file nén bị lỗi, và đó là lỗi thật chúng tôi đã gặp khi chuyển những file RAR mang ngày bằng không. TAR lưu quyền truy cập Unix, chủ sở hữu và liên kết tượng trưng. Trình duyệt không đọc được thông tin nào trong số đó từ ổ đĩa của bạn và cũng không ghi lại được, nên Tạo file TAR ghi một chế độ quyền mặc định hợp lý, còn các công cụ giải nén của chúng tôi chỉ liệt kê quyền và liên kết chứ không khôi phục chúng. Nếu file nén là bản sao lưu cần được khôi phục đúng y như lúc tạo, nó phải được tạo và khôi phục bằng tar trên chính máy đó.

Mã hóa ZIP có hai loại và chỉ một loại đáng giá. Cơ chế ZipCrypto nguyên thủy đã bị phá tới mức chỉ còn để trang trí — một cuộc tấn công bản rõ đã biết khôi phục nội dung trong vài giây trên phần cứng thông thường, vậy mà phần lớn phần mềm vẫn mặc định dùng nó. AES-256, được bổ sung sau, là mã hóa thực sự và không phá được. Ở đây không có loại nào: chúng tôi sẽ không cung cấp loại đã bị phá, còn loại hiện đại thì không có bản triển khai sẵn trong trình duyệt nào mà chúng tôi dùng được theo giấy phép mở. Dù sao cũng nên biết: ZIP không bao giờ mã hóa tên file, nên ai cũng đọc được mục lục của một file nén đã mã hóa. “Hoa-don/2024/Thanh-ly-mat.pdf” vẫn hiện ra mà không cần mật khẩu.

File nén là loại file duy nhất mà nội dung bên trong có thể tấn công chính chương trình mở nó. Một file bên trong có thể được đặt tên “../../.bashrc” để thoát ra khỏi thư mục giải nén, và vài kilobyte có thể được chế tạo để bung ra thành hàng terabyte, làm sập tab trình duyệt. Cả hai đều được xử lý trước khi bạn thấy bất cứ thứ gì: tên độc hại — leo lên thư mục cha, đường dẫn tuyệt đối, ký tự ổ đĩa Windows, tên thiết bị dành riêng, ký tự vô hình dùng để ngụy trang phần mở rộng — đều được chỉnh lại và mọi thay đổi được liệt kê, còn tỷ lệ bung nén được đo trước và bị từ chối thay vì cứ thế thực hiện. Liên kết tượng trưng trong file nén được hiển thị nhưng không bao giờ được đi theo.

Khi nào trình duyệt thực sự không phải công cụ phù hợp

Các công cụ này được tạo ra để giữ file nén của bạn riêng tư, và điều đó có cái giá của nó. Chúng tôi muốn nói rõ ở đây hơn là để bạn phát hiện ra giữa chừng.

File nén rất lớn. Mọi thứ được giữ trong bộ nhớ thiết bị của bạn, nên giới hạn là bộ nhớ mà tab được dùng chứ không phải giới hạn của gói dịch vụ nào. Liệt kê một file ZIP lớn thì nhẹ vì mục lục được đọc riêng, nhưng giải nén thì không: một file nén vài gigabyte sẽ chật vật trên điện thoại và có thể thất bại trên laptop. 7-Zip, GNU tar và bsdtar đọc dần từ ổ đĩa và không quan tâm file lớn đến đâu.

Tạo file RAR hoặc 7z. Cả hai đều không làm được ở đây, vì những lý do khác nhau. Thuật toán nén RAR là độc quyền, và giấy phép của đoạn mã duy nhất tạo được RAR cấm dùng nó để làm một chương trình nén khác, nên không công cụ trình duyệt nào có thể thật lòng cung cấp tính năng này — trang Chuyển ZIP sang RAR tồn tại chính là để giải thích điều đó. Với 7z, việc đọc làm được nhờ một bản triển khai được viết độc lập, còn việc ghi thì chưa có con đường tương tự. Nếu cần, WinRAR tạo được RAR, còn 7-Zip — miễn phí, và làm việc này tốt hơn mọi trang web — tạo được 7z.

Mọi thứ có mã hóa. Chúng tôi không tạo được file nén có mật khẩu và cũng không mở được. 7-Zip với AES-256 là lựa chọn miễn phí để tạo file nén có mật khẩu, và nó còn một lợi thế hơn mọi trang web: bạn gõ mật khẩu vào chương trình do chính bạn cài đặt, chứ không phải vào một ô văn bản trên internet.

Sao lưu trung thực. Quyền truy cập, chủ sở hữu, liên kết tượng trưng và liên kết cứng, thuộc tính mở rộng, file thưa và dấu thời gian chính xác là những thứ một bản sao lưu cần giữ, và trình duyệt không truy cập được thứ nào trong số đó. GNU tar và bsdtar miễn phí, có sẵn trên macOS và Linux, và là công cụ phù hợp.

Tự động hóa và nén thật mạnh. Các công cụ này chạy khi có người bấm. Nén một thư mục mỗi đêm là việc của dòng lệnh — tar, zip, 7z và zstd đều miễn phí. Và nếu dung lượng là điều quan trọng, deflate là thuật toán từ những năm 1990: zstd ở mức cao hay xz sẽ cho kết quả nhỏ hơn đáng kể so với ZIP của cùng các file, đổi lại là một định dạng mà người nhận có thể không mở được.

Chọn giữa những công cụ nghe na ná nhau

Giải nén ZIP, Giải nén RAR, Giải nén 7Z hay Giải nén TAR. Trên thực tế, bạn vào trang nào cũng được. Mỗi trang nhận diện file qua vài byte đầu tiên chứ không qua phần mở rộng, nên cả bốn đều mở được mọi định dạng và cho bạn biết file thực ra là gì — điều này quan trọng, vì chuyện đổi tên RAR thành .zip để lọt qua bộ lọc email là rất phổ biến. Điều thực sự khác nhau là định dạng, không phải trang: ZIP liệt kê ngay lập tức từ mục lục, còn RAR phải được đọc qua một lượt rồi mới cho biết bên trong có gì.

Tạo file ZIP hay Tạo file TAR. Chọn ZIP nếu người mở là một con người — nó chạy trên mọi máy tính mà không cần cài gì. Chọn TAR.GZ nếu người mở là một cỗ máy hay người dùng Linux, hoặc nếu bạn có nhiều file nhỏ giống nhau, khi đó nén cả gói thành một luồng cho kết quả nhỏ hơn rõ rệt so với nén riêng từng file. TAR thuần, không nén gì, chỉ đáng chọn khi nội dung đã được nén sẵn hoặc sẽ có khâu sau lo việc nén.

Chuyển RAR sang ZIP hay Chuyển ZIP sang RAR. Một bên là công cụ chuyển đổi, bên kia là trang giải thích. Chuyển RAR sang ZIP thực sự đọc file RAR của bạn và ghi ra file ZIP, sao chép các file sang nguyên vẹn từng byte chứ không mã hóa lại. Chuyển ZIP sang RAR là trang cho bạn biết vì sao không ai làm được việc đó, vì nếu không, cụm từ tìm kiếm này sẽ thuộc về những trang web hoặc đưa file của bạn lên máy chủ của họ, hoặc trả lại cho bạn một file ZIP bị đổi tên.

Tạo file ZIP hay nén ZIP để tiết kiệm dung lượng. Đó là hai mục tiêu khác nhau. Gom nhiều file thành một để gửi đi thì dùng được với mọi thứ. Làm một file lớn nhỏ đi thì thường là không, vì những file lớn người ta muốn thu nhỏ — video, ảnh chụp, PDF — đều đã được nén sẵn. Với chúng, các công cụ nén ảnh, nén video và nén PDF trên trang này mã hóa lại nội dung, và đó là cách duy nhất thực sự làm chúng nhỏ đi.

Nền tảng của các công cụ này

Các engine mã nguồn mở thực hiện công việc, và các đặc tả kỹ thuật mà chúng tuân theo.

  • fflateMIT — thực hiện DEFLATE, đồng thời đọc và ghi ZIP và TAR.
  • libarchiveBSD-2-Clause — mở RAR và 7z, được biên dịch sang WebAssembly.
  • ZIP APPNOTESpecification — là định nghĩa định dạng của PKWARE, bao gồm cả các chế độ mã hóa.

Câu hỏi thường gặp

File nén của tôi có bị lưu ở đâu không?

Không. File nén được đọc ngay tại nơi nó đang nằm, và không có gì được gửi cho chúng tôi hay lưu trữ ở bất kỳ đâu. Bạn có thể ngắt kết nối internet sau khi trang đã tải xong và mọi thứ vẫn hoạt động — đó là cách đơn giản nhất để tự kiểm chứng thay vì chỉ tin lời chúng tôi.

Công cụ có mở được file nén có mật khẩu không?

Nó sẽ cho bạn thấy bên trong có gì — tên file và dung lượng không được mã hóa trong ZIP — nhưng không đọc được nội dung. Mã hóa ZIP hiện đại là AES, và không có bản triển khai sẵn trong trình duyệt nào chúng tôi dùng được theo giấy phép mở, nên trang sẽ nói rõ file nào bị khóa thay vì trả về một mớ byte vô nghĩa. Tạo file nén có mã hóa cũng không được hỗ trợ, vì cơ chế duy nhất chúng tôi có thể triển khai là cơ chế cũ, bị phá trong vài giây.

Vì sao file ZIP của tôi gần như không nhỏ hơn các file ban đầu?

Vì phần lớn những gì người ta nén đã được nén sẵn. JPEG, PNG, MP4, MP3, PDF và tài liệu Office đều tự nén, và nén thêm lần nữa chẳng được gì. Tạo file ZIP nhận ra những file này và lưu nguyên như cũ thay vì làm mất thời gian của bạn, nên nén một thư mục ảnh xong ngay lập tức. Văn bản, mã nguồn, file log và tài liệu thì nén rất tốt — thường giảm từ tám mươi phần trăm trở lên.

Có tạo được file RAR hoặc 7z không?

RAR thì không, còn 7z thì chưa. Thuật toán nén RAR là độc quyền và giấy phép của nó cấm cụ thể việc xây dựng một chương trình nén tương thích, nên không hề tồn tại công cụ ghi RAR nào có giấy phép mở, và không công cụ trình duyệt nào có thể thật lòng cung cấp tính năng này. Ghi 7z là một khối lượng công việc lớn, và bản triển khai tham chiếu của nó có giấy phép mà trang này không dùng được. Đọc cả hai thì không vấn đề gì, và cả hai đều đọc được ở đây.

Mở file nén từ người lạ có an toàn không?

Mở ở đây thì an toàn theo nghĩa không có gì bên trong được chạy — file nén được đọc như dữ liệu, tên file tìm cách thoát khỏi thư mục sẽ được chỉnh lại và liệt kê ra, còn file nén được chế tạo để bung ra hàng terabyte sẽ được đo trước và bị từ chối thay vì cứ thế thực hiện. Những gì được lấy ra lại là chuyện khác: hãy đối xử với file tải về từ một nguồn bất ngờ đúng như với một file đính kèm email bất ngờ.

Có giới hạn dung lượng file hay giới hạn mỗi ngày không?

Không có tài khoản, không có hạn mức và không giới hạn mỗi ngày, vì không có máy chủ nào đếm cả. Giới hạn duy nhất là bộ nhớ thiết bị của bạn. Liệt kê một file ZIP lớn thì nhẹ vì mục lục được đọc riêng; giải nén vài gigabyte thì không, và điện thoại sẽ bỏ cuộc sớm hơn laptop nhiều.