ZIPファイルは、圧縮ファイルとフォルダーを単一のコンテナーに保持するために使用される最も一般的なタイプのアーカイブファイルです。 C#開発者は、.NETアプリケーションでC#を使用して、暗号化またはパスワードで保護されたZIPアーカイブをプログラムで簡単に作成できます。この記事では、C#を使用して暗号化されたZIPファイルを作成する方法を学習します。
この記事では、次のトピックについて説明/取り上げています。
- 暗号化されたZIPファイルを作成するためのC#API
- パスワードで保護されたZIPファイルを作成する
- AES暗号化を使用して暗号化されたZIPファイルを作成する
- ZIPファイルのフォルダを暗号化する
- ZIPアーカイブ内の特定のファイルを暗号化する
- 混合暗号化を使用して暗号化されたZIPファイルを作成する
暗号化されたZIPファイルを作成するためのC#API
暗号化されたZIPアーカイブを作成するには、Aspose.ZIP for .NETAPIを使用します。ファイルやフォルダを圧縮してZIPアーカイブに追加することができます。また、ZIP、TAR、GZIP、BZ2、7Zip、RARなどのサポートされているタイプのアーカイブを解凍できます。APIは、ユーザー定義のパスワードと、AES128、AES192、AES256などのAES暗号化を使用した従来の暗号化技術による保護を提供します。 。
APIのDLLをダウンロードするか、NuGetを使用してインストールできます。
Install-Package Aspose.ZIP
パスワードで保護されたZIPファイルを作成する
以下の手順に従って、パスワードで保護されたZIPアーカイブをプログラムで簡単に作成できます。
- ArchiveEntrySettingsオブジェクトを使用してArchiveクラスのインスタンスを作成します。
- TraditionalEncryptionSettingsオブジェクトを使用してパスワードを設定します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに追加します。
- 上記の手順を繰り返して、複数のファイルを追加します。
- 出力ファイルのパスを指定してSave()メソッドを呼び出し、出力ファイルを保存します。
次のコードサンプルは、C#を使用してパスワードで保護されたZIPファイルを作成する方法を示しています。
// アーカイブを作成する
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));
// アーカイブにファイルを追加する
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");
// アーカイブを保存する
archive.Save("C:\\Files\\password_protcted.zip");
Archiveクラスは、ZIPアーカイブファイルを表します。 ZIPアーカイブを作成、作成、抽出、または更新するためのいくつかの方法を提供します。このクラスのCreatEntry()メソッドは、アーカイブ内にファイルの単一のエントリを作成します。ファイルの名前と完全修飾ファイルパスを入力パラメーターとして使用します。このクラスは、ストリームまたはFileInfoからファイルを追加するためのオーバーロードされたCreatEntry()メソッドも提供します。このクラスのSave()メソッドは、指定されたファイルパスにZIPアーカイブを保存します。
ArchiveEntrySettingsクラスは、エントリを圧縮または解凍するための設定を提供します。 TraditionalEncryptionSetingsクラスは、従来のZipCryptoアルゴリズムの設定を提供します。これは、ZIPパスワード保護アルゴリズムです。このクラスのPasswordプロパティを使用すると、ZIPアーカイブ内のファイルおよびフォルダーの暗号化または復号化用のパスワードを取得または設定できます。
AES暗号化を使用して暗号化されたZIPファイルを作成する
以下の手順に従って、プログラムでAES暗号化を使用してZIPアーカイブを暗号化できます。
- ArchiveEntrySettingsオブジェクトを使用してArchiveクラスのインスタンスを作成します。
- AesEcryptionSettingsクラスを使用してパスワードを設定します。パスワード文字列とEncryptionMethodを引数としてコンストラクターに渡します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに追加します。
- 上記の手順を繰り返して、複数のファイルを追加します。
- 出力ファイルのパスを指定してSave()メソッドを呼び出し、出力ファイルを保存します。
次のコードサンプルは、C#を使用してAES暗号化で暗号化されたZIPファイルを作成する方法を示しています。
// アーカイブを作成する
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));
// アーカイブにファイルを追加する
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");
// アーカイブを保存する
archive.Save("C:\\Files\\aes.zip");
AesEncryptionSettingsクラスは、AES暗号化または復号化アルゴリズムの設定を提供します。 Advanced Encryption Standard(AES)は、対称暗号化または復号化ブロック暗号アルゴリズムです。
次の種類の暗号化方式を使用できます。
- 従来型—従来のPKWARE暗号化
- AES128 —キー長128ビットのAdvanced Encryption Standard
- AES192 —キー長192ビットのAdvanced Encryption Standard
- AES256 —キー長256ビットのAdvanced Encryption Standard
ZIPファイルのフォルダを暗号化する
以下の手順に従って、パスワードで保護されたフォルダをプログラムでZIPファイルに追加できます。
- ArchiveEntrySettingsオブジェクトを使用してArchiveクラスのインスタンスを作成します。
- TraditionalEncryptionSettingsオブジェクトを使用してパスワードを設定します。
- アーカイブに追加するフォルダーパスを指定してCreatEntries()メソッドを呼び出します。
- 上記の手順を繰り返して、複数のフォルダを追加します。
- 出力ファイルのパスを指定してSave()メソッドを呼び出し、出力ファイルを保存します。
次のコードサンプルは、C#を使用して暗号化されたフォルダーをZIPファイルに追加する方法を示しています。
// アーカイブを作成する
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));
// アーカイブにフォルダを追加します
archive.CreateEntries("C:\\Files\\MyFolder");
// アーカイブを保存する
archive.Save("C:\\Files\\password_protcted_folder.zip");
ZIPアーカイブ内の特定のファイルを暗号化する
以下の手順に従って、ZIPアーカイブ内の特定のファイルをプログラムで暗号化できます。
- Archiveクラスのインスタンスを作成します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに追加します。
- 従来のEncryptionSettingsでArchiveEntrySettingsを使用して、ファイルのパスワードを設定します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに別のファイルを追加します。
- 上記の手順を繰り返して、さらにファイルを追加します。
- 出力ファイルのパスを指定してSave()メソッドを呼び出し、出力ファイルを保存します。
次のコードサンプルは、C#を使用してZIPアーカイブ内の特定のファイルを暗号化する方法を示しています。
// アーカイブを作成する
Archive archive = new Archive();
// アーカイブにファイルを追加する
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));
// アーカイブを保存する
archive.Save("C:\\Files\\password_protcted.zip");
混合暗号化を使用して暗号化されたZIPファイルを作成する
以下の手順に従って、プログラムごとにファイルとフォルダーごとに異なる混合暗号化技術で保護されたファイルとフォルダーを含むZIPアーカイブを作成できます。
- Archiveクラスのインスタンスを作成します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに追加します。
- AesEcryptionSettingsでArchiveEntrySettingsを使用して、ファイルのパスワードを設定します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに別のファイルを追加します。
- 従来のEncryptionSettingsでArchiveEntrySettingsを使用して、ファイルのパスワードを設定します。
- 入力ファイルパスを指定してCreatEntry()メソッドを呼び出し、アーカイブに別のファイルを追加します。
- アーカイブに追加するフォルダーパスを指定してCreateEntries()メソッドを呼び出します。
- Save()メソッドと出力ファイルパスを使用して、出力ファイルを保存します。
次のコードサンプルは、C#を使用して混合暗号化技術を使用してZIPファイルを作成する方法を示しています。
// アーカイブを作成する
Archive archive = new Archive();
// AES暗号化を使用したファイルをアーカイブに追加します
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));
// 従来の暗号化を使用したファイルをアーカイブに追加します
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));
// 暗号化せずにファイルをアーカイブに追加
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");
// 暗号化せずにフォルダをアーカイブに追加します
archive.CreateEntries("C:\\Files\\MyFolder");
// アーカイブを保存する
archive.Save("C:\\Files\\Mixed.zip");
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C#を使用して暗号化されたZIPファイルを作成する方法を学習しました。また、パスワードで保護されたZIPファイルをプログラムで作成する方法も学びました。さらに、ZIPアーカイブ内の特定のファイルを暗号化する方法を学びました。さらに、パスワードで保護されたフォルダをZIPファイルに追加する方法を学びました。この記事では、C#を使用して混合暗号化技術で暗号化されたZIPファイルを作成する方法についても説明しました。 ドキュメントを使用して、Aspose.ZIP for.NETAPIの詳細を確認できます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。