2012-05-28 104 views
1

我正在製作一個應用程序,其中文檔將取決於資源,我希望將它們嵌入到一個文件中。我想知道是否有一個庫或API已經存在,可以用其中嵌入的其他文件創建文件,而不是創建新格式。不要緊,它是什麼格式,但我在尋找一個有:文件歸檔庫/ API?

  1. 選項可加密或不加密
  2. 能告訴閹現有的文件已經被加密。
  3. 讓我爲自己創建自己的文件擴展名,而不是使用爲該格式創建的文件擴展名。
  4. 工程與.NET 3.5

有沒有你們會推薦什麼庫?

+1

你可以使用zip嗎? –

+0

@AntonioBakula:他聽起來很像。 –

+0

我不知道有在.NET中製作ZIP壓縮文件的功能lol – Oztaco

回答

2

我不確定「創建自己的格式」是什麼意思。

存檔/加密文件的方法很多。你可以結合這些方法。首先加密任何你想寫的東西,然後用一個API來編寫它們。

這裏有一些資源,以創建歸檔:

http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx

對於加密,您可以使用RSA。用你的RSA密鑰替換your_rsa_key。

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)); 
+0

這是完美的,謝謝,我的意思是「創建自己的格式」是給文件一個像.document這樣的自定義文件擴展名。郵編 – Oztaco

3

你可以使用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頁的例子,和保存時,你可以使用任何你想要的擴展。

+0

+1。 AES可能更適合他的想法。它更快,更安全。而且似乎更易於使用。 –