特定の暗号化アルゴリズムを使用してサード パーティによって消費される zip ファイル ジェネレーターを作成しています。
ここでアルゴリズムの列挙を見つけました:
ICSharpCode.SharpZipLib.Zip.EncryptionAlgorithm
しかし、特定の zip アーカイブにアルゴリズムを適用する方法がわかりません。これが私のコードです。
using (FileStream fsOut = File.Create(fullPath + ".zip"))
using (var zipStream = new ZipOutputStream(fsOut))
{
zipStream.SetLevel(3); //0-9, 9 being the highest level of compression
zipStream.Password = "password";
using (MemoryStream memoryStream = new MemoryStream())
using (TextWriter writer = new StreamWriter(memoryStream))
{
// redacted: write data to memorytream...
var dataEntry = new ZipEntry(fullPath.Split('\\').Last()+".txt");
dataEntry.DateTime = DateTime.Now;
zipStream.PutNextEntry(dataEntry);
memoryStream.WriteTo(zipStream);
zipStream.CloseEntry();
}
}
Edit
DotNetZipでは、Zip 2.0 PKWARE 暗号化アルゴリズムも選択できます。