thêm tệp-hoặc-thư mục-vào-Zip-lưu trữ-sử dụng-csharp

Tệp ZIP là loại tệp lưu trữ phổ biến nhất được sử dụng để giữ các tệp và thư mục nén vào một vùng chứa duy nhất. Là nhà phát triển C#, bạn có thể dễ dàng tạo các kho lưu trữ ZIP được mã hóa hoặc bảo vệ bằng mật khẩu theo chương trình bằng cách sử dụng C# trong các ứng dụng .NET của mình. Trong bài viết này, bạn sẽ tìm hiểu cách tạo tệp ZIP được mã hóa bằng C#.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API C# để tạo tệp ZIP được mã hóa

Để tạo các kho lưu trữ ZIP được mã hóa, tôi sẽ sử dụng Aspose.ZIP for .NET API. Nó cho phép bạn nén các tập tin và thư mục và thêm chúng vào kho lưu trữ ZIP. Nó cũng cho phép bạn giải nén các kho lưu trữ thuộc các loại được hỗ trợ như ZIP, TAR, GZIP, BZ2, 7Zip, RAR, v.v. API cung cấp khả năng bảo vệ thông qua mật khẩu do người dùng xác định và các kỹ thuật mã hóa truyền thống sử dụng mã hóa AES như AES128, AES192 và AES256 .

Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package Aspose.ZIP

Tạo tệp ZIP được bảo vệ bằng mật khẩu

Bạn có thể dễ dàng tạo các kho lưu trữ ZIP được bảo vệ bằng mật khẩu theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Archive với đối tượng ArchiveEntrySettings.
  2. Đặt mật khẩu bằng đối tượng TraditionalEncryptionSettings.
  3. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm vào kho lưu trữ.
  4. Lặp lại bước trên để thêm nhiều tập tin.
  5. Gọi phương thức Save() với đường dẫn tệp đầu ra để lưu tệp đầu ra.

Mẫu mã sau đây cho biết cách tạo tệp ZIP được bảo vệ bằng mật khẩu bằng C#.

// tạo một kho lưu trữ
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Thêm tập tin vào kho lưu trữ
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// lưu kho lưu trữ
archive.Save("C:\\Files\\password_protcted.zip");
Tạo kho lưu trữ ZIP được bảo vệ bằng mật khẩu

Tạo kho lưu trữ ZIP được bảo vệ bằng mật khẩu

Lớp Archive đại diện cho một tệp lưu trữ ZIP. Nó cung cấp một số phương pháp để tạo, soạn, trích xuất hoặc cập nhật các kho lưu trữ ZIP. Phương thức CreatEntry() của lớp này tạo một mục nhập duy nhất của một tệp trong kho lưu trữ. Nó lấy tên của tệp và đường dẫn tệp đủ điều kiện làm tham số đầu vào. Lớp này cũng cung cấp các phương thức CreatEntry() quá tải để thêm tệp từ luồng hoặc FileInfo. Phương thức Save() của lớp này lưu kho lưu trữ ZIP tại đường dẫn tệp đã chỉ định.

Lớp ArchiveEntrySettings cung cấp các cài đặt để nén hoặc giải nén các mục nhập. Lớp Truyền thốngEncryptionSetings cung cấp các cài đặt cho thuật toán ZipCrypto truyền thống. Nó là một thuật toán bảo vệ mật khẩu ZIP. Thuộc tính Mật khẩu của lớp này cho phép nhận hoặc đặt mật khẩu để mã hóa hoặc giải mã các tệp và thư mục trong kho lưu trữ ZIP.

Tạo tệp ZIP được mã hóa bằng mã hóa AES

Bạn có thể mã hóa kho lưu trữ ZIP của mình bằng mã hóa AES theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Archive với đối tượng ArchiveEntrySettings.
  2. Đặt mật khẩu bằng lớp AesEcryptionSettings. Truyền chuỗi mật khẩu và EncryptionMethod làm đối số cho hàm tạo.
  3. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm vào kho lưu trữ.
  4. Lặp lại bước trên để thêm nhiều tập tin.
  5. Gọi phương thức Save() với đường dẫn tệp đầu ra để lưu tệp đầu ra.

Mẫu mã sau đây cho biết cách tạo tệp ZIP được mã hóa bằng mã hóa AES bằng C#.

// tạo một kho lưu trữ
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Thêm tập tin vào kho lưu trữ
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// lưu kho lưu trữ
archive.Save("C:\\Files\\aes.zip");

Lớp AesEncryptionSettings cung cấp các cài đặt cho thuật toán mã hóa hoặc giải mã AES. Tiêu chuẩn mã hóa nâng cao (AES) là thuật toán mật mã khối mã hóa hoặc giải mã đối xứng.

Bạn có thể sử dụng các loại phương pháp mã hóa sau:

  • Truyền thống — Mã hóa PKware truyền thống
  • AES128 — Tiêu chuẩn mã hóa nâng cao với độ dài khóa 128 bit
  • AES192 — Tiêu chuẩn mã hóa nâng cao với độ dài khóa 192 bit
  • AES256 — Tiêu chuẩn mã hóa nâng cao với độ dài khóa 256 bit

Mã hóa thư mục trong tệp ZIP

Bạn có thể thêm các thư mục được bảo vệ bằng mật khẩu vào tệp ZIP theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Archive với đối tượng ArchiveEntrySettings.
  2. Đặt mật khẩu bằng đối tượng TraditionalEncryptionSettings.
  3. Gọi phương thức CreatEntries() với đường dẫn thư mục để thêm vào kho lưu trữ.
  4. Lặp lại bước trên để thêm nhiều thư mục.
  5. Gọi phương thức Save() với đường dẫn tệp đầu ra để lưu tệp đầu ra.

Mẫu mã sau đây cho biết cách thêm thư mục được mã hóa vào tệp ZIP bằng C#.

// tạo một kho lưu trữ
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Thêm thư mục vào kho lưu trữ
archive.CreateEntries("C:\\Files\\MyFolder");

// lưu kho lưu trữ
archive.Save("C:\\Files\\password_protcted_folder.zip");

Mã hóa các tệp cụ thể trong kho lưu trữ ZIP

Bạn có thể mã hóa các tệp cụ thể trong kho lưu trữ ZIP theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Lưu trữ.
  2. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm vào kho lưu trữ.
  3. Đặt mật khẩu cho tệp bằng cách sử dụng ArchiveEntrySettings với Cài đặt mã hóa truyền thống.
  4. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm tệp khác vào kho lưu trữ.
  5. Lặp lại các bước trên để thêm nhiều tập tin hơn.
  6. Gọi phương thức Save() với đường dẫn tệp đầu ra để lưu tệp đầu ra.

Mẫu mã sau đây cho biết cách mã hóa các tệp cụ thể trong kho lưu trữ ZIP bằng C#.

// tạo một kho lưu trữ
Archive archive = new Archive();

// Thêm tập tin vào kho lưu trữ
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// lưu kho lưu trữ
archive.Save("C:\\Files\\password_protcted.zip");
Mã hóa các tệp cụ thể trong kho lưu trữ ZIP

Mã hóa các tệp cụ thể trong kho lưu trữ ZIP

Tạo tệp ZIP được mã hóa bằng mã hóa hỗn hợp

Bạn có thể tạo kho lưu trữ ZIP chứa các tệp và thư mục được bảo vệ bằng các kỹ thuật mã hóa hỗn hợp khác nhau cho từng tệp và thư mục theo chương trình bằng cách thực hiện theo các bước dưới đây:

  1. Tạo một thể hiện của lớp Lưu trữ.
  2. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm vào kho lưu trữ.
  3. Đặt mật khẩu cho tệp bằng cách sử dụng ArchiveEntrySettings với AesEcryptionSettings.
  4. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm tệp khác vào kho lưu trữ.
  5. Đặt mật khẩu cho tệp bằng cách sử dụng ArchiveEntrySettings với Cài đặt mã hóa truyền thống.
  6. Gọi phương thức CreatEntry() với đường dẫn tệp đầu vào để thêm tệp khác vào kho lưu trữ.
  7. Gọi phương thức CreateEntries() với đường dẫn thư mục để thêm vào kho lưu trữ.
  8. Lưu tệp đầu ra bằng phương thức Save() với đường dẫn tệp đầu ra.

Mẫu mã sau đây cho biết cách tạo tệp ZIP bằng các kỹ thuật mã hóa hỗn hợp bằng C#.

// tạo một kho lưu trữ
Archive archive = new Archive();

// Thêm tệp có mã hóa AES vào kho lưu trữ
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Thêm tệp có mã hóa truyền thống vào kho lưu trữ
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Thêm tệp không mã hóa vào kho lưu trữ
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Thêm thư mục không mã hóa vào kho lưu trữ
archive.CreateEntries("C:\\Files\\MyFolder");

// lưu kho lưu trữ
archive.Save("C:\\Files\\Mixed.zip");
Tạo kho lưu trữ ZIP được mã hóa bằng mã hóa hỗn hợp

Tạo tệp ZIP được mã hóa bằng mã hóa hỗn hợp

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách tạo tệp ZIP được mã hóa bằng C#. Bạn cũng đã học cách tạo tệp ZIP được bảo vệ bằng mật khẩu theo chương trình. Hơn nữa, bạn đã học cách mã hóa các tệp cụ thể trong kho lưu trữ ZIP. Hơn nữa, bạn đã học cách thêm các thư mục được bảo vệ bằng mật khẩu vào tệp ZIP. Bài viết này cũng giải thích cách tạo tệp ZIP được mã hóa bằng các kỹ thuật mã hóa hỗn hợp bằng C#. Bạn có thể tìm hiểu thêm về Aspose.ZIP for .NET API bằng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm