Genel Bakış
Aspose.ZIP, arşivler için çeşitli şifreleme ve şifre çözme işlemlerini kolaylaştırır. Aspose.Zip API for Python.NET kullanarak, ZIP, RAR ve 7-Zip arşivlerini etkili bir şekilde şifreleyebilir ve şifresini çözebilirsiniz.ZIP Dosyalarını Şifrele
ZIP arşivleri için iki şifreleme yöntemi kullanılabilir: eski, artık daha az güvenli kabul edilen geleneksel yöntem ve daha sağlam modern AES şifreleme. ZIP standardı, aynı arşivdeki bireysel girişlerin herhangi biriyle şifrelenmesine izin verir. Güçlü güvenliği ile bilinen AES şifreleme, 128-bit, 192-bit ve 256-bit gibi çeşitli anahtar uzunluklarını destekleyerek ZIP arşivlerindeki hassas veriler için gelişmiş koruma sağlar. Aynı arşivdeki her giriş kendi şifrelemesiyle şifrelenebilir, bu nedenle aynı arşivde farklı şifreleme türlerini karıştırabilirsiniz.
Deflate Yöntemiyle ZIP'in Kilidini Açın
with open("archive.zip", 'x') as zip_file:
with open("alice29.txt") as source:
method = zp.saving.CompressionSettings.deflate
encryption = zp.saving.TraditionalEncryptionSettings("p@s$S")
archive = zp.Archive(zp.saving.ArchiveEntrySettings(method, encryption))
archive.create_entry("alice29.txt", source)
archive.save(zip_file)
Kod, archive.zip adlı yeni bir ZIP dosyası oluşturur, alice29.txt dosyasının içeriğini Deflate sıkıştırma yöntemi kullanarak sıkıştırır, geleneksel ZIP şifreleme yöntemiyle "p@s$S" parolasını kullanarak şifreler ve sıkıştırılmış ve şifrelenmiş dosyayı yeni oluşturulan ZIP arşivine kaydeder.
AES ile ZIP Şifrele
with open("archive.zip", 'x') as zip_file:
with open("alice29.txt") as source:
method = zp.saving.CompressionSettings.deflate
encryption = zp.saving.AesEcryptionSettings("p@s$S", zp.saving.EncryptionMethod.AES256)
archive = zp.Archive(zp.saving.ArchiveEntrySettings(method, encryption))
archive.create_entry("alice29.txt", source)
archive.save(zip_file)
Verilen kod, archive.zip adlı bir ZIP arşivi oluşturmayı, alice29.txt dosyasını Deflate sıkıştırma yöntemiyle sıkıştırmayı ve "p@s$S" parolasını kullanarak AES-256 şifreleme ile şifrelemeyi gösterir. Bu örnekler için
EncryptionSetting
örneklerini ilgili
Archive constructor
içinde sağladık. Belirli bir girdi için şifreleme uygulamak mümkündür ve diğerlerini korumasız bırakır.
Bu, ZIP arşivinde belirli girdilere şifreleme uygulama esnekliğini gösterir ve farklı dosyaların farklı koruma seviyelerine sahip olmasına olanak tanır. Bu yaklaşım, bireysel dosyaların veya dosya gruplarının farklı koruma seviyelerine sahip olmasını sağlayan daha ayrıntılı ve özelleştirilmiş bir güvenlik stratejisi sağlar. 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 değişebileceğini belirtmek önemlidir.
Üçüncü Girdinin İkincisini Şifrele
with open("archive.zip", 'x') as zip_file:
encrypted_entry = zp.saving.ArchiveEntrySettings(None, zp.saving.AesEcryptionSettings("p@s$", zp.saving.EncryptionMethod.AES256))
with zp.Archive as archive:
archive.create_entry("alice29.txt", "alice29.txt")
archive.create_entry("asyoulik.txt", "asyoulik.txt", false, encrypted_entry)
archive.create_entry("fields.c", "fields.c")
archive.save(zip_file)
Bu kod, Python’da parola korumalı bir ZIP arşivi oluşturmayı gösterir. Üç dosya ekler: alice29.txt, asyoulik.txt ve fields.c.
Nasıl çalıştığı:
Bu.resultFile’da saklanan ada göre ZIP arşivi için bir dosya açar veya oluşturur. Eklenecek dosyaları temsil etmek için FileInfo nesneleri oluşturur. Yeni bir arşiv nesnesi oluşturur.
Dosyaları Ekler: alice29.txt ve fields.c arşive özel ayarlar olmadan eklenir. asyoulik.txt, AES-256 şifreleme ile eklenir ve şifresini çözmek için p@s$ parolasını gerektirir. Tamamlanan arşivi belirtilen dosyaya kaydeder.
Farklı Yöntemler ve Parolalarla ZIP Şifrele
with open("archive.zip", 'x') as zip_file:
encrypted_1 = zp.saving.ArchiveEntrySettings(None, zp.saving.AesEcryptionSettings("p@s$1", zp.saving.EncryptionMethod.AES256))
encrypted_2 = zp.saving.ArchiveEntrySettings(None, zp.saving.TraditionalEncryptionSettings("p@s$2"))
encrypted_3 = zp.saving.ArchiveEntrySettings(None, zp.saving.AesEcryptionSettings("p@s$3", zp.saving.EncryptionMethod.AES128))
with zp.Archive as archive:
archive.create_entry("alice29.txt", "alice29.txt", false, encrypted_1)
archive.create_entry ("asyoulik.txt", "asyoulik.txt", false, encrypted_2)
archive.create_entry("fields.c", "fields.c", false, encrypted_3)
archive.save(zip_file)
Bu kod parçası, Python’da bireysel dosyaların farklı yöntemler ve parolalarla şifrelendiği bir ZIP arşivi oluşturmayı gösterir. İşte nasıl çalışır:
Dosya Kurulumu: Bu.resultFile’da saklanan ada göre ZIP arşivi için bir dosya açar veya oluşturur. Eklenecek dosyaları temsil eden FileInfo nesneleri oluşturur: alice29.txt, asyoulik.txt ve fields.c.
Arşivi Oluşturma: Yeni bir arşiv nesnesi (arşiv) oluşturur.
Şifrelenmiş Dosyaları Ekler: Kod, dosyaları belirli şifreleme ayarlarıyla arşive eklemek için bir döngü kullanır:
– alice29.txt
- Bu dosya AES-256 şifreleme ile eklenir ve şifresini çözmek için "p@s" parolasını gerektirir.
– asyoulik.txt
- Bu dosya farklı bir şifreleme yöntemi olan Geleneksel Şifreleme ile eklenir. Ayrıca, şifresini çözmek için "p@s" parolasını kullanır.
– fields.c
- Bu dosya tekrar AES-128 şifreleme ile eklenir, ancak farklı bir parola, "p@s$3", kullanır.
Arşivi Kaydetme: Son olarak, kod, şifrelenmiş dosyaları içeren tamamlanmış arşivi belirtilen dosyaya kaydeder.
Farklı Yöntemler ve Parolalarla ZIP Arşivi Şifrele
with zp.Archive("plain.zip") as archive:
save_options = zp.saving.ArchiveSaveOptions()
save_options.encryption_options = zp.saving.AesEcryptionSettings("p@s$", zp.saving.EncryptionMethod.AES256)
archive.save("encrypted.zip", save_options)
Bu kod mevcut bir ZIP arşivini plain.zip alır, içeriğini p@s$ parolası ile AES-256 kullanarak şifreler ve şifrelenmiş versiyonunu encrypted.zip adlı yeni bir arşiv olarak kaydeder.
ZIP Dosyalarını Şifresini Çözme
Parola ile ZIP Dosyasının Şifresini Çözme
with zp.Archive("source.zip") as archive:
archive.entries[0].extract("first_entry.bin", "p@s$")
Kullanıcı, şifrelenmiş ZIP arşivinde belirli bir girdinin şifresini çözme seçeneğine sahiptir. Bu kod parçası, parola korumalı bir ZIP arşivinden ilk girdiyi şifre çözmek için temel bir yaklaşımı gösterir. Parola doğruysa, arşiv başarıyla açılır.
Tüm ZIP Dosyasının Şifresini Çözme
load_options = zp.ArchiveLoadOptions()
load_options.decryption_password = "p@s$S"
with zp.Archive("source.zip", load_options) as archive:
archive.extract_to_directory("destination")
Bu basit kod, parola korumalı bir ZIP arşivi olan "source.zip" dosyasını alır, şifresini çözmek için sağlanan "p@s$S" parolasını kullanır ve tüm içeriğini belirtilen "destination" klasörüne çıkarır.
RAR Dosyasının Şifresini Çözme
Aspose.ZIP, RAR arşiv kompozisyonunu desteklemez, sadece çıkarma işlemini destekler. RAR arşivi dosya adlarını koruyarak veya korumadan şifrelenebilir.
İlk durumda, RAR arşivi oluşturma işleminin başında
RarArchiveLoadOptions
içine şifre çözme parolasını sağlamak gerekir. İkinci durumda, parola daha sonra giriş çıkarımı sırasında sağlanabilir.
Dosya adları şifrelenmiş bütün bir RAR arşivinin şifresini çözme
load_options = zp.rar.RarArchiveLoadOptions()
load_options.decryption_password = "p@s$S"
with zp.rar.RarArchive("source.rar", load_options) as archive:
archive.extract_to_directory("destination")
Bu kod esasen ZIP örneğine benzer şekilde çalışır ancak özellikle RAR arşivleri için geçerlidir. Şifre korumalı bir RAR arşivini (source.rar) alır, sağlanan parolayı (p@s$S) kullanarak şifreyi çözer ve tüm içeriğini belirtilen bir klasöre (destination) çıkarır.
RAR arşivinden belirli bir girişi şifresini çözme
with zp.rar.RarArchive("source.rar") as archive:
archive.entries[0].extract("first_entry.bin", "p@s$S")
Bu kod, source.rar RAR arşivini açar, arşivin ilk girişinin şifresini p@s$S parolasını kullanarak çözer ve first_entry.bin dosyasına kaydeder. Bu örnek, yalnızca girişlerin içeriği şifrelenmiş ancak dosya adları şifrelenmemişse çalışır.
RAR arşivinden belirli bir girişi akış olarak şifresini çözme
with io.FileIO("file.bin", "xb") as destination:
with zp.rar.RarArchive("source.rar") as archive:
with archive.entries[0].open("p@s$S") as source:
destination.write(source.readall())
Bu kod, source.rar RAR arşivini açar, arşivin ikinci kaydının şifresini p@s$S parolasını kullanarak çözer ve içeriğini ByteArrayOutputStream’e okur. Okuma tamponu kullanarak, kod aşamalı veri aktarımı sağlar, bu da büyük dosyaların verimli bir şekilde işlenmesine yardımcı olur. Bu örnek, yalnızca girişlerin içeriği şifrelenmiş ancak dosya adları şifrelenmemişse çalışır. Bu örnekte giriş baytları bellek akışına kopyalanır.
AES 256 ile 7zip şifreleme
7z arşiv şifrelemesi için tek seçenek AES ’dir. Arşiv, dosya boyutunu verimli bir şekilde azaltmak için LZMA2 sıkıştırmasını ve ek güvenlik için şifreyi kullanarak AES şifrelemesini kullanır. Kod, dosyaları arşive eklemek için CreateEntry yöntemini kullanarak dosyalarda döngü yapar.
Bütün bir 7zip arşivini şifreleme ve sıkıştırma
with open("archive.7z", 'xb') as sz_file:
compression = zp.saving.SevenZipLZMA2CompressionSettings()
encryption = zp.saving.SevenZipAESEncryptionSettings("p@s$S")
entry_settings = zp.saving.SevenZipEntrySettings(compression, encryption)
with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
archive.create_entry("alice29.txt", "alice29.txt")
archive.create_entry("asyoulik.txt", "asyoulik.txt")
archive.create_entry("fields.c", "fields.c")
archive.save(sz_file)
Bu kod, üç dosya içeren şifreli bir 7z arşivi oluşturur: alice29.txt, asyoulik.txt ve fields.c. Arşiv, LZMA2 sıkıştırmasını ve p@s$S parolası ile AES şifrelemesini kullanır. Dosyalar CreateEntry yöntemi kullanılarak arşive eklenir ve arşivin kendisi oluşturulan archive.7z dosyasına kaydedilir.
Parola ile 7z Şifreleme
with open("archive.7z", 'xb') as sz_file:
compression = zp.saving.SevenZipLZMA2CompressionSettings()
entry_pass1 = zp.saving.SevenZipEntrySettings(compression, zp.saving.SevenZipAESEncryptionSettings("p@s$S"))
entry_pass2 = zp.saving.SevenZipEntrySettings(compression, zp.saving.SevenZipAESEncryptionSettings("$ecret"))
with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
archive.create_entry("alice29.txt", "alice29.txt")
archive.create_entry("asyoulik.txt", "asyoulik.txt", false, entry_pass1)
archive.create_entry("fields.c", "fields.c", false, entry_pass2)
archive.save(sz_file)
Bu kod, üç dosya içeren şifreli bir 7z arşivi oluşturur: alice29.txt, asyoulik.txt ve fields.c. İlk dosya özel ayarlar olmadan arşive eklenir. İkinci dosya, LZMA2 sıkıştırması ve p@s$S parolası ile AES şifrelemesi kullanılarak eklenir. Üçüncü dosya, LZMA2 sıkıştırması ve $ecret parolası ile AES şifrelemesi kullanılarak eklenir. Son olarak, arşiv archive.7z dosyasına kaydedilir.
ZIP’e benzer şekilde, kullanıcı ya tüm arşivin ya da belirli bir girişin şifresini çözebilir. 7Z arşivi dosya adlarını koruyarak veya korumadan şifrelenebilir. Dosya adları şifrelenmişse, arşiv oluşturma sırasında parola sağlamanız gerekir.
7ZIP dosyalarını Şifre Çözme
Dosya adları şifrelenmiş 7z arşivinin şifresini çözme
with zp.sevenzip.SevenZipArchive("archive.7z", "p@s$S") as archive:
archive.extract_to_directory("c:\extracted")
Dosya adları şifrelenmiş olsun veya olmasın, çıkartma oluşturucusunda parola sağlamak güvenlidir. Aşağıdaki örnek yalnızca içerik korunduğunda çalışır.
7zip belirli bir girişin şifresini çözme
with zp.sevenzip.SevenZipArchive("archive.7z") as archive:
archive.entries[0].extract("data.bin", "p@s$S")
Dosya adları şifrelenmiş olsun veya olmasın, çıkartma oluşturucusunda parola sağlamak güvenlidir. Aşağıdaki örnek yalnızca içerik korunduğunda çalışır.
Desteklenen Diğer Aspose.ZIP for Python.Net API Özellikleri
Aspose.ZIP kütüphanesi ile Python.Net’ te, ZIP dosya belgeleriyle ilgili çeşitli görevleri sorunsuz bir şekilde gerçekleştirebilirsiniz. Formatları dönüştürmeniz, dosyaları birleştirmeniz, içerikleri düzenlemeniz veya verileri çıkarmanız gerektiğinde, Aspose.ZIP iş akışınızı düzenlemek ve verimliliğinizi artırmak için kapsamlı işlevsellik sağlar.
Support and Learning Resources
- Öğrenme Kaynakları
- Belgeler
- Kaynak Kod
- API Referansları
- Ürün Desteği
- Ücretsiz Destek
- Ücretli Destek
- Blog
- Sürüm Notları
- Neden Aspose.Zip for Python.Net?
- Müşteri Listesi
- Başarı Hikayeleri