Genel Bakış
Günümüzün dijital ortamında veri güvenliği çok önemlidir ve hassas bilgileri korumanın etkili yollarından biri şifrelemedir. Bu genel bakış, verilerinizin gizliliğini ve bütünlüğünü sağlayarak bir arşivin tamamını veya içindeki belirli girişleri nasıl şifreleyeceğiniz veya şifresini çözeceğiniz konusunda size rehberlik edecektir. Aspose.ZIP, arşivlerin şifrelenmesi ve şifresinin çözülmesiyle ilgili bir dizi işlemi kolaylaştırır.Tüm ZIP Arşivi Nasıl Şifrelenir veya Şifresi Çözülür
Zip arşivini geleneksel yöntemle şifreleyin
ZIP arşivi için iki şifreleme yöntemi mevcuttur: geleneksel, artık zayıf kabul edilen ve modern AES. ZIP standardı, aynı arşiv içinde bile herhangi bir girişin bu yöntemlerden herhangi biriyle şifrelenmesine olanak tanır. AES şifrelemesi daha güçlü güvenlik sunar ve farklı anahtar uzunluklarında (128 bit, 192 bit ve 256 bit) mevcuttur. ZIP arşivlerindeki hassas veriler için daha iyi koruma sağlar.
Deflate ile sıkıştırılmış dosyalar
using (var zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
var archive = new Archive(new ArchiveEntrySettings(CompressionSettings.Deflate, new TraditionalEncryptionSettings("p@s$")));
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
Arşivin tamamını AES yöntemiyle şifrelemek
using (var zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings(CompressionSettings.Deflate, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
}
Bu örnekler, EncryptionSetting örneklerinin ilgili Arşiv yapıcısına nasıl yerleştirileceğini gösterir. Bu, bireysel girişlerin seçici olarak şifrelenmesine olanak tanır ve diğerlerinin şifrelenmemesini sağlar.
Zip Arşivindeki üç girişten ikincisini şifrele
using (FileStream zipFile = File.Open(this.resultFile, FileMode.Create))
{
FileInfo source1 = new FileInfo("alice29.txt");
FileInfo source2 = new FileInfo("asyoulik.txt");
FileInfo source3 = new FileInfo("fields.c");
using (var archive = new Archive())
{
archive.CreateEntry("alice29.txt", source1);
archive.CreateEntry("asyoulik.txt", source2, false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256)));
archive.CreateEntry("fields.c", source3);
archive.Save(zipFile);
}
}
Her ne kadar alışılmışın dışında görünse de, bir ZIP arşivindeki belirli girişleri farklı şifreleme yöntemleri ve parolalar kullanarak şifrelemek aslında mümkündür. Bu yaklaşım, bireysel dosyaların veya dosya gruplarının farklı koruma düzeylerine sahip olabildiği daha ayrıntılı ve özelleştirilmiş bir güvenlik stratejisine olanak tanır. Ancak bu uygulamanın yönetim ve şifre çözme sürecini karmaşıklaştırabileceğini ve çeşitli ZIP arşiv araçlarıyla uyumluluğun farklılık gösterebileceğini unutmamak önemlidir.
Zip'i farklı yöntemler ve şifrelerle şifreleyin
using (FileStream zipFile = File.Open(this.resultFile, FileMode.Create))
{
FileInfo source1 = new FileInfo("alice29.txt");
FileInfo source2 = new FileInfo("asyoulik.txt");
FileInfo source3 = new FileInfo("fields.c");
using (var archive = new Archive())
{
archive.CreateEntry("alice29.txt", source1, false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$1", EncryptionMethod.AES256)));
archive.CreateEntry("asyoulik.txt", source2, false, new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$2")));
archive.CreateEntry("fields.c", source3, false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$3", EncryptionMethod.AES256)));
archive.Save(zipFile);
}
}
Aspose.ZIP , mevcut bir arşive, içeriği tamamen yeniden paketlemeden şifreleme eklemenizi sağlar. Ancak arşivdeki tüm girişlerin korumasız olması gerektiğini unutmamak önemlidir; aksi takdirde bir istisna ortaya çıkacaktır.
Mevcut ZIP arşivini şifrele
using (var archive = new Archive("plain.zip"))
{
archive.Save("encrypted.zip", new ArchiveSaveOptions()
{
EncryptionOptions = new AesEcryptionSettings("p@s$", EncryptionMethod.AES256)
});
}
Zip arşivinin şifresini çözme
Kullanıcı, şifrelenmiş ZIP arşivindeki belirli bir girişin veya bir bütün olarak arşivin tamamının şifresini çözme seçeneğine sahiptir.
Belirli bir girişin şifresini çözme
using (var zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
var archive = new Archive(new ArchiveEntrySettings(CompressionSettings.Deflate, new TraditionalEncryptionSettings("p@s$")));
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
Tüm Zip arşivinin şifresini çözün
Bu durumda bir kurucu içerisinde şifre sağlamamız gerekir.
using (var zipFile = File.Open("archive.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings(CompressionSettings.Deflate, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
}
RAR Arşivi Nasıl Şifrelenir veya Şifresi Çözülür
RAR arşivinin şifresini çözme
Aspose.ZIP, RAR arşiv kompozisyonunu desteklemez, yalnızca çıkartmayı destekler.
RAR arşivi
, dosya adları korunarak veya korunmadan şifrelenebilir.
Önceki durumda, RAR arşivi oluşturmanın en başında kullanıcının
RarArchiveLoadOptions
içinde şifre çözme şifresini sağlaması gerekir. İkinci durumda, daha sonra giriş çıkarımı sırasında parolayı geçirmek mümkündür.
Şifrelenmiş dosya adlarıyla tüm RAR arşivinin şifresini çözün
using (RarArchive archive = new RarArchive("source.rar",
new RarArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
archive.ExtractToDirectory("destination");
}
RAR arşivindeki belirli bir girişin şifresini çözme
Bu örnek, yalnızca girişlerin içeriği şifrelenmiş ancak dosya adları şifrelenmemişse işe yarar.
using (RarArchive archive = new RarArchive("source.rar"))
{
archive.Entries[0].Extract("first_entry.bin", "p@s$");
}
RAR arşivindeki belirli bir girişin akış olarak şifresini çözme
Ancak, bu örnekte varsayım, dosya adlarının değil yalnızca girişlerin içeriğinin şifrelendiği yönündedir. . Bu, giriş baytlarının bir bellek akışına kopyalanmasını gerektirir.
MemoryStream destination = new MemoryStream();
using (RarArchive archive = new RarArchive("source.rar"))
{
using (var source = archive.Entries[1].Open("p@s$"))
{
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
{
destination.Write(buffer, 0, bytesRead);
}
}
}
7ZIP Arşivinin Tamamı Nasıl Şifrelenir veya Şifresi Çözülür
7z Arşiv Dosyalarını Şifreleme Yöntemleri
7z arşiv şifrelemesinin tek seçeneği AES ’dir.
LZMA2'nin tüm 7z arşiviyle şifreleyin ve sıkıştırın
7Z arşivleri, her girişi kendi parolasıyla şifreleme veya korumasız bırakma özelliğini destekler.
using (FileStream szFile = File.Open("archive.7z", FileMode.Create))
{
FileInfo source1 = new FileInfo("alice29.txt");
FileInfo source2 = new FileInfo("asyoulik.txt");
FileInfo source3 = new FileInfo("fields.c");
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
archive.CreateEntry("alice29.txt", source1);
archive.CreateEntry("asyoulik.txt", source2);
archive.CreateEntry("fields.c", source3);
archive.Save(szFile);
}
}
7z arşivinin girişlerini kendi şifrelerinizle şifreleyin ve bir girişi şifrelenmemiş bırakın
ZIP’e benzer şekilde, kullanıcı arşivin tamamının veya içindeki belirli bir girişin şifresini çözebilir.
7Z arşivi, dosya adları korunarak veya korunmadan şifrelenebilir. Dosya adları şifrelenmişse
arşiv oluşturma sırasında
şifre sağlamanız gerekir.
using (FileStream szFile = File.Open("archive.7z", FileMode.Create))
{
FileInfo source1 = new FileInfo("alice29.txt");
FileInfo source2 = new FileInfo("asyoulik.txt");
FileInfo source3 = new FileInfo("fields.c");
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("alice29.txt", source1);
archive.CreateEntry("asyoulik.txt", source2, false, new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$")));
archive.CreateEntry("fields.c", source3, false, new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("$ecret")));
archive.Save(szFile);
}
}
Dizine şifrelenmiş dosya adlarıyla tüm arşivin şifresini çözün
Dosya adları şifrelenmiş olsun ya da olmasın, çıkarma yapıcısında parolayı sağlamak güvenlidir.
Aşağıdaki örnek yalnızca içerik korunduğunda çalışır.
using (SevenZipArchive archive = new SevenZipArchive("archive.7z", "p@s$"))
{
archive.ExtractToDirectory("C:\\extracted");
}
Belirli bir girişin şifresini çözme
using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin", "p@s$");
}
Desteklenen Diğer Aspose.ZIP for .NET API Özellikleri
Zip dosyası belgelerini dönüştürmek, birleştirmek, düzenlemek, arşivlerden veri çıkarmak ve daha fazlası için Aspose.ZIP C# kütüphanesini kullanın!
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for .NET?
- Customers List
- Success Stories