如何在 C# 中创建带密码的 ZIP 文件
ZIP文件广泛用于压缩和存档数据,使传输和存储大量文件变得更加容易。 然而,在某些情况下,额外的安全性至关重要,因此密码保护ZIP文件的重要性日益突出。 密码保护确保只有授权人员可以访问和提取ZIP档案的内容,为敏感数据增加一层额外的安全保障。
在本文中,我们将探讨如何使用C#和IronZIP库创建一个密码保护的ZIP文件。 IronZIP是一个功能强大的C# ZIP存档库,简化了在.NET应用程序中处理ZIP文件的过程。
如何创建具有密码保护的C# ZIP文件
- 在 Visual Studio 中创建一个 C# 项目
- 从NuGet包管理器安装IronZIP库
- 使用
IronZipArchive类创建一个空的ZIP存档对象 - 使用
Encrypt方法添加密码保护 - 使用
Add方法向存档对象中添加文件 - 使用
SaveAs方法导出ZIP存档
IronZIP库简介

IronZIP是一个领先的C# ZIP存档库,旨在创建、读取和提取.NET平台下的存档。 它提供了用户友好的API,允许开发人员轻松将存档管理功能集成到他们的.NET项目中。 支持各种存档格式,包括ZIP、TAR、GZIP和BZIP2,IronZIP提供了一个全面的解决方案,轻松处理ZIP文件。
IronZIP的详细功能
兼容性
- 支持.NET 8、7、6、5、Core、Standard和Framework。
- 兼容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包管理器或包管理控制台快速轻松安装。
- 与DigiCert签名的二进制文件集成,确保二进制文件认证安全。
在 Visual Studio 中创建 C# 控制台项目的步骤
让我们逐步进行创建一个C#控制台项目,并使用IronZIP对ZIP文件进行密码保护。
- 打开 Visual Studio。
- 创建一个新的C#控制台应用程序项目。
- 给你的项目命名并选择一个地点。

- 从"附加信息"中选择最新版本的 .NET Framework。 IronZIP支持最新的8.0 .NET Framework。
- 点击"创建"生成项目。
安装IronZIP
要在项目中使用IronZIP,您需要安装该库。 您可以使用NuGet包管理器或包管理控制台来完成此操作。
使用 NuGet 包管理器
- 在解决方案资源管理器中右键单击您的项目。
- 选择"管理NuGet包..."
- 搜索"IronZip"并点击"安装"。

使用包管理器控制台
- 打开包管理控制台。
运行以下命令:
Install-Package IronZip
ZIP文件添加密码保护步骤
现在IronZIP已安装,您可以继续使用该库对ZIP文件进行密码保护。
导入所需库
using IronZip;
using IronZip.Enum;using IronZip;
using IronZip.Enum;Imports IronZip
Imports IronZip.Enum这些代码行导入了IronZIP库中的必要命名空间:IronZip包含主要类和功能,而IronZip.Enum则包含库中使用的枚举。
主程序类
class Program
{
static void Main()
{
// Code execution starts here
}
}class Program
{
static void Main()
{
// Code execution starts here
}
}Friend Class Program
Shared Sub Main()
' Code execution starts here
End Sub
End Class这是程序的主类,代码执行从这里的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 Usingusing语句确保在使用后IronZipArchive对象被正确释放。 它创建了一个带有最高压缩级别(9)的新IronZipArchive实例。
ZIP存档添加密码保护
以下单行代码向ZIP存档添加了密码保护:
archive.Encrypt("P@ssw0rd", EncryptionMethods.Traditional);archive.Encrypt("P@ssw0rd", EncryptionMethods.Traditional);IRON VB CONVERTER ERROR developers@ironsoftware.com在archive对象上调用Encrypt方法以为ZIP文件密码保护。它接受两个参数:密码字符串("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")Add方法用于向ZIP存档添加文件。在此示例中,位于"./assets/"目录下的一个文本文件和一个图像文件(file1.txt 和 image1.png)被添加到存档中。
这些是要添加的文件:

导出ZIP存档
archive.SaveAs("output.zip");archive.SaveAs("output.zip");archive.SaveAs("output.zip")调用SaveAs方法导出ZIP存档。它指定输出文件名为"output.zip"。 这会创建一个带有指定内容和密码的密码保护ZIP文件。
访问代码示例页面,了解更多关于如何使用IronZIP在C#中创建、读取、提取及执行其他ZIP文件相关操作的信息。
以下是完整的源码,其中分离了字符串路径和密码属性以便更好地控制:
using IronZip;
using IronZip.Enum;
class Program
{
static void Main()
{
// Define password and file paths for the ZIP archive
string password = "P@ssw0rd";
string filename = "./assets/file1.txt";
string imagename = "./assets/image1.png";
// Create a new ZIPArchive with the highest compression level
using (var archive = new IronZipArchive(9))
{
// Add Password to protect the ZIP (Support AES128 & AES256)
archive.Encrypt(password, EncryptionMethods.Traditional);
// Add files to the archive
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()
{
// Define password and file paths for the ZIP archive
string password = "P@ssw0rd";
string filename = "./assets/file1.txt";
string imagename = "./assets/image1.png";
// Create a new ZIPArchive with the highest compression level
using (var archive = new IronZipArchive(9))
{
// Add Password to protect the ZIP (Support AES128 & AES256)
archive.Encrypt(password, EncryptionMethods.Traditional);
// Add files to the archive
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()
' Define password and file paths for the ZIP archive
Dim password As String = "P@ssw0rd"
Dim filename As String = "./assets/file1.txt"
Dim imagename As String = "./assets/image1.png"
' Create a new ZIPArchive with the highest compression level
Using archive = New IronZipArchive(9)
' Add Password to protect the ZIP (Support AES128 & AES256)
archive.Encrypt(password, EncryptionMethods.Traditional)
' Add files to the archive
archive.Add(filename)
archive.Add(imagename)
' Export the Encrypted ZIP file archive
archive.SaveAs("output.zip")
End Using
End Sub
End Class输出
运行程序后,您将在项目目录中拥有一个名为"output.zip"的密码保护单个文件,其中包含指定文件。

结论
在本文中,我们探讨了密码保护ZIP文件的重要性,并介绍了IronZIP库作为处理C#项目中ZIP存档的强大解决方案。 我们介绍了IronZIP的详细功能,包括兼容性、存档生成、编辑功能以及简单安装步骤。 该库支持传统和高级的加密方法,以保护文件免受篡改。 最后,我们逐步演示了如何在Visual Studio中创建一个C#控制台项目、安装IronZIP并对ZIP文件进行密码保护。
IronZIP简化了在C#应用程序中处理ZIP文件的过程,提供了一个强大的工具集用于存档管理和安全性。 将IronZIP集成到您的项目中,可以在处理ZIP存档中敏感信息时增强数据保护。 欲了解更多关于IronZIP及其功能的详细信息,请访问官方文档页面。
IronZIP提供免费试用以供长期使用。 它的轻量版套餐从$799开始。
常见问题解答
如何在C#中创建一个密码保护的ZIP文件?
你可以使用IronZIP库在C#中创建一个密码保护的ZIP文件。首先,通过NuGet安装该库,然后创建一个IronZipArchive对象,使用Encrypt方法添加一个密码,向归档中添加文件,并使用SaveAs保存归档。
为保护ZIP文件安全提供了哪些加密选项?
IronZIP提供传统的、AES128和AES256加密方法来保护ZIP文件。这些选项提供不同层次的安全性,以保护ZIP归档内的敏感数据。
IronZIP兼容多个.NET版本吗?
是的,IronZIP兼容.NET 8、7、6、5、Core、Standard和Framework,是开发者在不同.NET环境中工作的多功能选择。
如何在我的项目中安装IronZIP?
你可以使用Visual Studio中的NuGet包管理器安装IronZIP。在包管理器中搜索'IronZip'并添加到你的项目中,开始管理ZIP文件。
IronZIP可以与C#以外的编程语言一起使用吗?
是的,IronZIP除了兼容C#之外,还兼容VB.NET和F#,允许开发者在各种.NET语言应用程序中使用。
为ZIP文件管理设置C#控制台应用程序需要哪些步骤?
要用IronZIP为ZIP文件管理设置C#控制台应用程序,需在Visual Studio中创建新的控制台项目,通过NuGet安装IronZIP,并遵循库的文档为ZIP文件添加功能。
使用IronZIP处理ZIP文件的主要好处是什么?
IronZIP通过提供易于使用的API、跨平台支持以及密码保护和多种归档格式支持,简化了ZIP文件的管理,提高了功能性和数据安全。
密码保护如何提高ZIP文件的安全性?
密码保护确保只有授权个人可以访问ZIP文件的内容,为存储在归档中的敏感数据增加了关键的安全层。








