2008-12-04 21 views
9

encryption suitable for use by the US Federal Government ile bir sıkıştırılmış sıkıştırma ve şifreleme bileşeni bulmaya çalışıyorum, bu yüzden Zip 2.0 şifrelemeyi kullanamıyorum, AES veya benzeri olması gerekiyor. Zaten SharpZipLib (AES encyrption yapamazsınız) ve Chilkat (AES şifreleme yapabilir, ancak paraya mal olur) buldum. Başka seçenekleri kaçırıyor muyum? Para büyük bir sorun iseAES şifreleme ile Zip yapmak için ucuz/ücretsiz bir .NET kütüphanesi için öneriler?

cevap

10

DotNetZip'te AES için ne kadar ödeme yapmak istersiniz? ;)

DotNetZip 128 veya 256-bit anahtarlar ile AES şifreleme destekler.

http://www.codeplex.com/DotNetZip

örnek kod: DotNetZip tarafından üretilen

using (ZipFile zip = new ZipFile()) 
    { 
    zip.AddFile("ReadMe.txt"); // no password for this entry 

    // use a password for subsequent entries 
    zip.Password= "This.Encryption.is.FIPS.197.Compliant!"; 
    zip.Encryption= EncryptionAlgorithm.WinZipAes256; 
    zip.AddFile("Rawdata-2008-12-18.csv"); 
    zip.Save("Backup-AES-Encrypted.zip"); 
    } 

AES-şifrelenmiş zip dosyaları okumak ve WinZip'in ekstre edildi ve bunun tersi de olabilir.

Ayrıca, şifrelemesiz düzenli zip dosyaları da oluşturabilirsiniz.

Ah, ve ücretsizdir.

+0

Eğer herhangi bir şifrelemek için kullanılan hangi yöntemi görmek için bir yol var mı Arşiv? WinZip ile oluşturulmuş bir arşivi açarsam bunun gerçekten şifrelenmiş olduğunu görüyorum, fakat hangi algoritmayla (Zip2.0, AES128, AES256, vb.) Bağlantı kurmanın bir yolu yok. – WowtaH

+0

DotNetZip, okuduğunuz zip dosyasında ZipFile.Encryption özelliğini size söyleyecektir. WinZip ile nasıl yapılacağını bilmiyorum. – Cheeso

+1

Bu kütüphaneden gerçekten heyecan duyuyordum, ancak AesCryptoServiceProvider gibi sertifikalı şifreleme sağlayıcılarını yönetilen muadili AesManaged'e karşı kullanmamız gerekiyor. DotNetZip'in, .NET 2: ( –

6

, artık AES desteği ne 7-Zip hakkında

+0

Güncelleme: AES şimdi DotNetZip'te desteklenmektedir. http://DotNetZip.codeplex.com/ – Cheeso

+0

Ben 7-zip gibi hesaba –

6

sahip bu http://www.codeplex.com/DotNetZip gibi açık kaynak kodlu kütüphane, alabilir? Bu LGPL altında açık kaynak (bu yüzden projenizde kullanılabilir olmalıdır) ve spec göre AES şifreleme ile ZIP destekler.

+0

içine güncellemesini almaya düzenlenmiş, ama ya sürecinin başlatılması birlikte çalışma veya COM/yönetilmeyen kod (komut satırından çalıştırmak için) gerektirir. – MatthewMartin

+1

Aslında, şu anda kullanmak için C# koduna sahip olan LZMA SDK'sı var: http://www.7-zip.org/sdk.html –

1

Kontrol dışarı Stream Pipeline bu müthiş yazı. Bu, akışları birbirleriyle çok iş parçacıklı bir şekilde birbirine bağlamak için sadece havalı bir yol tanımlamakla kalmaz, kullanılan sıkıştırma ve ardından şifreleme yöntemidir.

+0

Bağlantı artık bozuldu, makale Şubat 2008'de görünüyor MSDN sorunu, Sütun ".NET Matters: Stream Pipeline". http://download.microsoft.com/download/3/A/7/3A7FA450-1F33-41F7-9E6D-3AA95B5A6AEA/MSDNMagazineFebruary2008en-us.chm –

1

Sen DotNetZipLib için hafif bir alternatiftir #ZipLib (https://icsharpcode.github.io/SharpZipLib/), kullanabilirsiniz.

Bu kod 2-3 hatları AES şifreleme ile HDD üzerindeki bir klasörün sıkıştırmasını azaltan FastZip sınıfını sunmaktadır

. Eğer daha fazla özellik gerekiyorsa https://github.com/icsharpcode/SharpZipLib/wiki/FastZip

, #ZipLib biraz daha karmaşık DotNetZipLib daha alır, ama ikincisi oluşturulan bozuk ZIP benim durumumda dosyalar, bu yüzden her durumda SharpZipLib kullanın:

referans yazısını okuyun.

İlgili konular