IRONZIPの使用

パスワード付きファイルをC#で圧縮する方法

チャクニット・ビン
チャクニット・ビン
2024年3月6日
共有:

ZIPファイルは、データの圧縮やアーカイブに広く使われており、大きなファイルセットの転送や保存を容易にします。 しかし、さらなるセキュリティが不可欠なシナリオもあり、パスワードで保護されたzipファイルの重要性が高まっています。 パスワード保護は、許可された個人のみがZIPアーカイブの内容にアクセスし、解凍できるようにすることで、機密データに追加のセキュリティ層を加えます。

この記事では、C#(シーシャープ)とIronZIPライブラリを使用して、パスワードで保護されたZIPファイルを作成する方法について説明します。 IronZIPは、.NETアプリケーションでZIPファイルを扱うプロセスを簡素化する強力なC# ZIPアーカイブライブラリです。

パスワード保護付き(シーシャープ)ZIPファイルの作り方

  1. Visual StudioでC#(シーシャープ)プロジェクトを作成する

  2. NuGetパッケージマネージャからIronZIPライブラリをインストールする

  3. IronZipArchive クラスを使用して空のZIPアーカイブオブジェクトを作成する

  4. Encrypt メソッドを使用してパスワード保護を追加

  5. Add メソッドを使用してファイルをアーカイブオブジェクトに追加します。

  6. SaveAs メソッドを使用してZIPアーカイブをエクスポートします

IronZIPライブラリの紹介

C#でパスワード付きファイルをZipする方法:図1 - IronZIPのウェブページ

IronZIP は、.NET でアーカイブを作成、読み取り、および抽出するために設計された、主要な C# ZIP アーカイブ ライブラリです。 開発者が.NETプロジェクトにアーカイブ管理機能を簡単に組み込むことができる、ユーザーフレンドリーなAPIを提供します。 ZIP、TAR、GZIP、BZIP2を含む様々なアーカイブ形式をサポートし、IronZIPは簡単にZIPファイルを扱うための包括的なソリューションを提供します。

IronZIPの詳細な特徴

互換性

  • .NET 8、7、6、5、コア、スタンダード、フレームワークをサポート。
  • C#、VB.NET、F#言語に対応。
  • Windows、Linux、Mac、iOS、Android、Docker、Azure、AWSのクロスプラットフォーム対応。
  • Microsoft Visual StudioやJetBrains ReSharper & Riderのような一般的なIDEとの統合。

アーカイブの生成と編集

  • ZIP、TAR、GZIP、BZIP2アーカイブ形式をサポート。
  • ZIPファイルの作成、インポート、エクスポート。
  • 従来の暗号化設定、AES128、AES256を使用したZIPファイルのパスワード保護。
  • 9段階のカスタム・コンプレッション。 最高の小型化を実現。
  • 追加、抽出、削除など、アーカイブ内のファイルエントリを管理。

インストール

  • NuGet Package ManagerまたはPackage Manager Consoleによる迅速で簡単なインストール。
  • DigiCert Signed Binariesとの統合により、安全なバイナリ認証を実現。

Visual StudioでC#(シーシャープ)コンソールプロジェクトを作成する手順

Visual StudioでC#(シーシャープ)コンソールプロジェクトを作成し、IronZIPIronZIPを使ってZIPファイルをパスワードで保護する手順を説明しよう。

  1. Visual Studioを開きます。

  2. 新しい C# (シーシャープ) コンソールアプリケーションプロジェクトを作成します。

  3. プロジェクトに名前を付け、場所を選ぶ。

    C#でパスワード付きZIPファイルを作成する方法: 図2 - プロジェクト名と場所の設定

  4. Additional Informationから、.NETフレームワークの最新バージョンを選択します。 IronZIPは最新の8.0 .NET フレームワークをサポートしています。

  5. 作成」をクリックしてプロジェクトを生成する。

IronZIPのインストール

プロジェクトでIronZIPを使用するには、ライブラリをインストールする必要があります。 NuGetパッケージマネージャまたはパッケージマネージャコンソールのいずれかを使用してこれを行うことができます。

NuGet パッケージ マネージャーの使用

  1. ソリューションエクスプローラーでプロジェクトを右クリックします。

  2. 「NuGetパッケージの管理...」を選択してください

  3. IronZIPを検索し、"インストール "をクリックする。

    C#でパスワード付きのZIPファイルを作成する方法: 図3 - NuGetパッケージマネージャーを使用してIronZIPをインストールする

パッケージマネージャーコンソールの使用

  1. パッケージマネージャーコンソールを開きます。

  2. 次のコマンドを実行します:
    :ProductInstall

Zipファイルをパスワードで保護する手順

IronZIPがインストールされたので、ライブラリを使ってZIPファイルをパスワードで保護することができる。

必要なライブラリのインポート

using IronZip;
using IronZip.Enum;
using IronZip;
using IronZip.Enum;
Imports IronZip
Imports IronZip.Enum
$vbLabelText   $csharpLabel

これらの行はIronZIPライブラリから必要な名前空間をインポートする。 IronZIP には主要なクラスと機能が含まれており、IronZip.Enum にはライブラリで使用される列挙型が含まれています。

メインプログラム・クラス

class Program
{
    static void Main()
    {
        // Code goes here
    }
}
class Program
{
    static void Main()
    {
        // Code goes here
    }
}
Friend Class Program
	Shared Sub Main()
		' Code goes here
	End Sub
End Class
$vbLabelText   $csharpLabel

これは、コードの実行が始まるMainメソッドを含むプログラムのメインクラスです。

空のZIPアーカイブの作成

using (var archive = new IronZipArchive(9)) 
{ 
     // Code within the 'using' block 
}
using (var archive = new IronZipArchive(9)) 
{ 
     // Code within the 'using' block 
}
Using archive = New IronZipArchive(9)
	 ' Code within the 'using' block 
End Using
$vbLabelText   $csharpLabel

using ステートメントは、使用後に IronZipArchive オブジェクトが適切に破棄されることを保証します。 それは、最も高い圧縮レベル(9)でIronZipArchiveの新しいインスタンスを作成します。

ZIPアーカイブのパスワード保護

次の1行のコードで、ZIPArchiveアーカイブファイルにパスワード保護を追加します。

archive.Encrypt("P@ssw0rd", EncryptionMethods.Traditional);
archive.Encrypt("P@ssw0rd", EncryptionMethods.Traditional);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Encrypt メソッドは、ZIPファイルをパスワード保護するために archive オブジェクトで呼び出されます。これには2つのパラメーターが必要です: パスワード文字列 ("P@ssw0rd") と暗号化方式 (EncryptionMethods.Traditional) です。

また、IronZIPはAES128とAES256の高度なパスワード保護機能を備えており、簡単に破られることはなく、ZIPファイルの操作を防ぐことができます。

ZIPアーカイブにファイルを追加する

archive.Add("./assets/file1.txt"); archive.Add("./assets/image1.png");
archive.Add("./assets/file1.txt"); archive.Add("./assets/image1.png");
archive.Add("./assets/file1.txt")
archive.Add("./assets/image1.png")
$vbLabelText   $csharpLabel

Add メソッドは、ZIP アーカイブにファイルを追加するために使用されます。この例では、"./assets/" ディレクトリにある 1 つのテキストファイルと 1 つの画像ファイル (file1.txtimage1.png) がアーカイブに追加されます。

これらは追加されるファイルである:

C#でファイルをパスワード付きZIPにする方法: 図4 - ZIPファイル内の追加されたファイルの外観を保持

ZIPアーカイブのエクスポート

archive.SaveAs("output.zip");
archive.SaveAs("output.zip");
archive.SaveAs("output.zip")
$vbLabelText   $csharpLabel

SaveAs メソッドは、ZIP アーカイブをエクスポートするために呼び出されます。出力ファイル名として「output.zip」が指定されています。 これは、指定された内容とパスワードでパスワード保護されたZIPファイルを作成します。

コード例のページを訪問して、C#でIronZIPを使用してZIPファイルの作成、読み取り、抽出、およびその他の操作を行う方法について詳しく学んでください。

以下は、ファイルへの文字列パスを分離し、パスワード・プロパティで制御しやすくした完全なソース・コードである:

using IronZip;
using IronZip.Enum;
class Program
{
    static void Main()
    {
    string password = "P@ssw0rd";
    string filename = "./assets/file1.txt";
    string imagename = "./assets/image1.png";
        // Create an empty new ZIPArchive with the highest compression
        using (var archive = new IronZipArchive(9))
        {
            // Add Password to protect the ZIP (Support AES128 & AES256)
            archive.Encrypt(password, EncryptionMethods.Traditional);
            archive.Add(filename);
            archive.Add(imagename);
            // Export the Encrypted ZIP file archive
            archive.SaveAs("output.zip");
        }
    }
}
using IronZip;
using IronZip.Enum;
class Program
{
    static void Main()
    {
    string password = "P@ssw0rd";
    string filename = "./assets/file1.txt";
    string imagename = "./assets/image1.png";
        // Create an empty new ZIPArchive with the highest compression
        using (var archive = new IronZipArchive(9))
        {
            // Add Password to protect the ZIP (Support AES128 & AES256)
            archive.Encrypt(password, EncryptionMethods.Traditional);
            archive.Add(filename);
            archive.Add(imagename);
            // Export the Encrypted ZIP file archive
            archive.SaveAs("output.zip");
        }
    }
}
Imports IronZip
Imports IronZip.Enum
Friend Class Program
	Shared Sub Main()
	Dim password As String = "P@ssw0rd"
	Dim filename As String = "./assets/file1.txt"
	Dim imagename As String = "./assets/image1.png"
		' Create an empty new ZIPArchive with the highest compression
		Using archive = New IronZipArchive(9)
			' Add Password to protect the ZIP (Support AES128 & AES256)
			archive.Encrypt(password, EncryptionMethods.Traditional)
			archive.Add(filename)
			archive.Add(imagename)
			' Export the Encrypted ZIP file archive
			archive.SaveAs("output.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

出力

プログラムを実行すると、プロジェクト・ディレクトリにパスワードで保護された単一ファイル "output.zip "ができ、その中に指定されたファイルが含まれます。

C#でパスワード付きZIPファイルを作成する方法: 図5 - パスワード保護されたZIPファイルのパスワード入力を求めるポップアップ

結論

この記事では、パスワードで保護されたZIPファイルの重要性を探り、C#プロジェクトでZIPアーカイブを扱うための強力なソリューションとしてIronZIPライブラリを紹介した。 互換性、アーカイブ生成、編集機能、簡単なインストール手順など、IronZIPの詳細な機能をカバーした。 このライブラリは、従来の暗号化方式と高度な暗号化方式をサポートし、ファイルの改ざんを防ぎます。 最後に、Visual StudioでC#(シーシャープ)コンソールプロジェクトを作成し、IronZIPIronZIPをインストールし、ZIPファイルをパスワードで保護する手順を説明した。

IronZIPはC# (シーシャープ)アプリケーションでZIPファイルを扱うプロセスを簡素化し、開発者にアーカイブ管理とセキュリティのための堅牢なツールセットを提供します。 IronZIPをプロジェクトに組み込むことで、ZIPアーカイブ内の機密情報を扱う際のデータ保護を強化することができます。 IronZIPとその機能に関する詳細情報は、公式のドキュメントページをご覧ください。

IronZIPは、無料試用を提供しており、長期間の使用が可能です。 そのLiteパッケージは$749から始まります。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
VB .NETでZipファイルを抽出する方法
次へ >
C#でディレクトリにファイルを解凍する方法