【问题标题】:File archiving library/API?文件归档库/API?
【发布时间】:2012-06-02 10:36:26
【问题描述】:

我正在制作一个文档将依赖于资源的应用程序,我希望将它们嵌入到一个文件中。我没有创建新格式,而是想知道是否已经存在一个库或 API 来创建嵌入了其他文件的文件。它是什么格式并不重要,但我正在寻找一种:

  1. 加密或不加密选项
  2. 可以判断现有文件是否已加密。
  3. 让我为其创建自己的文件扩展名,而不是使用为该格式创建的扩展名。
  4. 适用于 .NET 3.5

你们有什么推荐的库吗?

【问题讨论】:

  • 你能用 zip 吗?
  • @AntonioBakula:他说得像这样。
  • 我不知道 .NET 中内置了用于制作 ZIP 存档的功能,哈哈

标签: c# .net file archive


【解决方案1】:

我不确定您所说的“创建自己的格式”是什么意思。

归档/加密文件的方法有很多种。您可以结合使用这些方法。首先加密您想编写的任何内容,然后使用 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));

【讨论】:

  • 这太完美了,谢谢,我所说的“创建自己的格式”的意思是给文件一个自定义的文件扩展名,比如 .document 而不是 .zip
【解决方案2】:

您可以使用 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");
}

示例来自this 页面,保存时您可以使用任何您想要的扩展。

【讨论】:

  • +1 用于 AES。 AES 可能更适合他的想法。它更快、更安全。而且看起来更容易使用。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2012-03-27
  • 2015-04-11
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多