文件归档库/API
本文关键字:API 文件 | 更新日期: 2023-09-27 18:35:26
我正在制作一个应用程序,其中文档将依赖于资源,我希望将它们嵌入到一个文件中。我想知道是否已经存在一个库或 API 来创建嵌入了其他文件的文件,而不是创建新格式。它是什么格式并不重要,但我正在寻找一种:
- 可选择加密或不加密
- 可以判断现有文件是否已加密。
- 让我为它制作自己的文件扩展名,而不是使用为该格式创建的文件扩展名。
- 适用于 .NET 3.5
你们会推荐任何库吗?
您可以使用
DotNetZip库,以下是使用AES加密的示例
using (ZipFile zip = new ZipFile())
{
zip.AddFile("ReadMe.txt"); // no password for this one
zip.Password= "Cool.Hand.Luke!";
zip.Encryption= EncryptionAlgorithm.WinZipAes256;
zip.AddFile("Rawdata-2008-12-18.csv");
zip.Save("Backup-AES-Encrypted.zip");
}
示例来自此页面,保存时可以使用所需的任何扩展名。
我不确定您所说的"创建自己的格式"是什么意思。
有许多方法可以存档/加密文件。您可以组合这些方法。首先加密要写入的任何内容,然后使用 API 编写它们。
以下是创建存档的一些资源:
http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx
对于加密,您可以使用 RSA。将your_rsa_key替换为您的 RSA 密钥。
var provider = new System.Security.Cryptography.RSACryptoServiceProvider();
provider.ImportParameters(your_rsa_key);
var encryptedBytes = provider.Encrypt(
System.Text.Encoding.UTF8.GetBytes("Hello World!"), true);
string decryptedTest = System.Text.Encoding.UTF8.GetString(
provider.Decrypt(encryptedBytes, true));