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

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: