Áttekintés
Az Aspose.ZIP számos titkosítási és visszafejtési műveletet tesz lehetővé az archívumok számára. Az Aspose.Zip API for Python.NET használatával hatékonyan titkosíthatja és visszafejtheti a ZIP, RAR és 7-Zip archívumokat.ZIP fájlok titkosítása
A ZIP archívumokhoz két titkosítási technika használható: a régebbi, ma már kevésbé biztonságosnak számító hagyományos módszer és a robusztusabb modern AES titkosítás. A ZIP szabvány lehetővé teszi az egyes bejegyzések titkosítását ugyanabban az archívumban bármelyik módszerrel. Az erősebb biztonságáról ismert AES-titkosítás különféle kulcshosszúságokat támogat, beleértve a 128 bites, 192 bites és 256 bites kulcsokat, így fokozott védelmet kínál a ZIP-archívumokban található érzékeny adatok számára. Ugyanabban az archívumban minden bejegyzés saját titkosítással titkosítható, így ugyanabban az archívumban különböző titkosítási típusokat keverhet.
Oldja fel a ZIP-t a Deflate módszerrel
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)
A kód létrehoz egy új ZIP fájlt archive.zip néven, tömöríti az alice29.txt tartalmát a Deflate tömörítési módszerrel, titkosítja a hagyományos ZIP titkosítási módszerrel a "p@s$S" jelszóval, és elmenti a tömörített és titkosított fájlt. fájlt az újonnan létrehozott ZIP archívumba.
A ZIP titkosítása AES-sel
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)
A mellékelt kód bemutatja, hogyan lehet létrehozni egy archive.zip nevű ZIP archívumot, tömöríteni az alice29.txt fájlt a Deflate tömörítési módszerrel, és titkosítani AES-256 titkosítással a „p@s$S” jelszó használatával. Ezekhez a mintákhoz megadtuk a
EncryptionSetting
példányait a megfelelő
Archívum-konstruktoron
. Lehetőség van titkosítás alkalmazására egy adott bejegyzéshez, így a többi védelem nélkül marad.
Ez bemutatja a titkosítás alkalmazásának rugalmasságát a ZIP-archívum egyes bejegyzéseinél, lehetővé téve a különböző fájlok eltérő szintű védelmét. Ez a megközelítés részletesebb és testreszabottabb biztonsági stratégiát tesz lehetővé, ahol az egyes fájlok vagy fájlcsoportok eltérő szintű védelemmel rendelkezhetnek. Fontos azonban megjegyezni, hogy ez a gyakorlat megnehezítheti a kezelési és visszafejtési folyamatot, és a különböző ZIP-archívum-eszközökkel való kompatibilitás eltérő lehet.
Titkosítsa a ZIP-kódot a háromból a második bejegyzéshez
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)
Ez a kód egy jelszóval védett ZIP archívum létrehozását mutatja be Pythonban. Három fájlt ad hozzá: alice29.txt, asyoulik.txt és fields.c.
Így működik:
Megnyit vagy létrehoz egy fájlt a ZIP-archívum számára a this.resultFile fájlban tárolt név alapján. FileInfo objektumokat hoz létre a hozzáadandó fájlok reprezentálására. Új archív objektumot hoz létre.
Fájlok hozzáadása: Az alice29.txt és a fields.c fájl minden különleges beállítás nélkül hozzáadódik az archívumhoz. Az asyoulik.txt fájl AES-256 titkosítással lett hozzáadva, és a visszafejtéshez a p@s$ jelszó szükséges. Az elkészült archívumot a megadott fájlba menti.
Titkosítsa a ZIP-t különböző módszerekkel és jelszavakkal
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)
Ez a kódrészlet bemutatja egy ZIP archívum létrehozását Pythonban, ahol az egyes fájlok különböző módszerekkel és jelszavakkal vannak titkosítva. Működése a következő:
Fájlbeállítás: Megnyit vagy létrehoz egy fájlt a ZIP-archívum számára a this.resultFile fájlban tárolt név alapján. Létrehozza a hozzáadandó fájlokat képviselő FileInfo objektumokat: alice29.txt, asyoulik.txt és fields.c.
Archívum létrehozása: Új archív objektumot (archívumot) hoz létre.
Titkosított fájlok hozzáadása: A kód egy ciklust használ a fájlok átfutásához és az archívumhoz való hozzáadásához meghatározott titkosítási beállításokkal:
– alice29.txt
- Ez a fájl a következővel van hozzáadva:** AES-256 titkosítás**, és a visszafejtéshez a "p@s" jelszó szükséges.
– asyoulik.txt
- Ez a fájl egy másik, hagyományos titkosítás nevű titkosítási módszerrel lett hozzáadva. A visszafejtéshez külön jelszót is használ, "p@s".
– fields.c
- Ez a fájl ismét AES-128 titkosítással lett hozzáadva, de más jelszóval, "p@s$3" a visszafejtéshez.
Archívum mentése: Végül a kód elmenti az elkészült, titkosított fájlokat tartalmazó archívumot a megadott fájlba.
Titkosítsa a ZIP-archívumot különböző módszerekkel és jelszavakkal
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)
Ez a kód egy meglévő ZIP archívumot vesz fel plain.zip, AES-256 segítségével titkosítja annak tartalmát p@s$ jelszóval, és a titkosított verziót új archívumként menti encrypted.zip néven.
A ZIP fájlok visszafejtése
A ZIP fájl visszafejtése jelszóval
with zp.Archive("source.zip") as archive:
archive.entries[0].extract("first_entry.bin", "p@s$")
A felhasználónak lehetősége van egy adott bejegyzés visszafejtésére a titkosított ZIP-archívumban. Ez a kódrészlet a jelszóval védett ZIP archívum első bejegyzésének visszafejtésének alapvető megközelítését mutatja be. Ha a jelszó helyes, az archívum sikeresen megnyílik.
A teljes ZIP fájl visszafejtése
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")
Ez az egyszerű kód egy jelszóval védett "source.zip" ZIP archívumot vesz fel, a megadott "p@s$S" jelszót használja a visszafejtéshez, és annak teljes tartalmát kibontja egy kijelölt "cél" mappába.
RAR fájl visszafejtése
Az Aspose.ZIP nem támogatja a RAR archívum összeállítást, csak a kibontást. A RAR archívum titkosítható fájlnevekkel vagy anélkül.
Az előbbi esetben a felhasználónak meg kell adnia a visszafejtési jelszót a [RarArchiveLoadOptions]-ban (
https://reference.aspose.com/zip/net/aspose.zip.rar/rararchiveloadoptions/
) a RAR archívum példányosításának legelején. Ez utóbbi esetben lehetőség van a jelszó későbbi átadására a bejegyzés kibontásakor.
A teljes RAR archívum visszafejtése titkosított fájlnevekkel
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")
Lényegében ez a kód a ZIP-példához hasonlóan működik, de kifejezetten RAR archívumokhoz működik. Elvesz egy jelszóval védett "source.rar" RAR archívumot, a megadott "p@s$S" jelszót használja a visszafejtéshez, és annak teljes tartalmát kibontja egy kijelölt "cél" mappába.
Egy adott bejegyzés visszafejtése a RAR archívumból
with zp.rar.RarArchive("source.rar") as archive:
archive.entries[0].extract("first_entry.bin", "p@s$S")
Ez a kód megnyitja a source.rar RAR archívumot, dekódolja és kicsomagolja az archívum első bejegyzését a „p@s$S” jelszó használatával, és elmenti a first_entry.bin fájlba. Ez a minta akkor működne, ha csak a bejegyzések tartalma van titkosítva, de a fájlnevek nem.
Egy adott bejegyzés visszafejtése a RAR archívumból adatfolyamként
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())
Ez a kód megnyitja a source.rar RAR archívumot, dekódolja az archívum második rekordját a „p@s$S” jelszó használatával, és beolvassa a tartalmát egy ByteArrayOutputStreambe. Olvasási puffer használatával a kód fokozatos adatátvitelt biztosít, ami segít a nagy fájlok hatékony kezelésében. Ez a minta akkor működne, ha csak a bejegyzések tartalma van titkosítva, de a fájlnevek nem. Ebben a mintában a bejegyzés bájtjait a memóriafolyamba másoljuk.
7zip titkosítás AES 256-tal
A 7z archívumtitkosítás egyetlen lehetősége az AES . Az archívum LZMA2 tömörítést használ a hatékony fájlméret-csökkentés érdekében, és AES titkosítást jelszóval a nagyobb biztonság érdekében. A kód a fájlok között iterál, és a CreateEntry metódussal hozzáadja azokat az archívumhoz.
A teljes 7zip archívum titkosítása és tömörítése
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)
Ez a kód egy titkosított 7z archívumot hoz létre, amely három fájlt tartalmaz: alice29.txt, asyoulik.txt és fields.c. Az archívum LZMA2 tömörítést és AES titkosítást használ "p@s$S" jelszóval. A fájlok a CreateEntry metódussal kerülnek az archívumba, és maga az archívum a létrehozott archívum.7z fájlba kerül mentésre.
7z Titkosítás jelszóval
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)
Ez a kód egy titkosított 7z archívumot hoz létre, amely három fájlt tartalmaz: alice29.txt, asyoulik.txt és fields.c. Az első fájl speciális beállítások nélkül hozzáadódik az archívumhoz. A második fájl LZMA2 tömörítéssel és AES titkosítással van csatolva a "p@s$S" jelszóval. A harmadik fájl LZMA2 tömörítéssel és AES titkosítással van csatolva a "$ecret" jelszóval. Végül az archívum az archívum.7z fájlba kerül.
A ZIP-hez hasonlóan a felhasználó akár a teljes archívumot, akár egy bizonyos bejegyzést visszafejthet belőle. A 7Z archívum titkosítható fájlnevekkel vagy anélkül. Ha a fájlnevek titkosítottak, meg kell adnia a jelszót az
archív példány
.
7ZIP fájlok visszafejtése
A 7z archívum visszafejtése titkosított fájlnevekkel
with zp.sevenzip.SevenZipArchive("archive.7z", "p@s$S") as archive:
archive.extract_to_directory("c:\extracted")
Függetlenül attól, hogy a fájlnevek titkosítottak vagy sem, biztonságosan megadhatja a jelszót a kicsomagoló konstruktorban. Az alábbi minta csak akkor működik, ha csak a tartalom védett.
Egy adott 7zip bejegyzés visszafejtése
with zp.sevenzip.SevenZipArchive("archive.7z") as archive:
archive.entries[0].extract("data.bin", "p@s$S")
Függetlenül attól, hogy a fájlnevek titkosítottak vagy sem, biztonságosan megadhatja a jelszót a kicsomagoló konstruktorban. Az alábbi minta csak akkor működik, ha csak a tartalom védett.
Egyéb támogatott Aspose.ZIP a Python.Net API-hoz
A Python.Net Aspose.ZIP könyvtárával zökkenőmentesen kezelheti a ZIP fájlokkal kapcsolatos különféle feladatokat. Legyen szó formátumok konvertálására, fájlok egyesítésére, tartalom szerkesztésére vagy adatok kibontására, az Aspose.ZIP átfogó funkcionalitást biztosít a munkafolyamat egyszerűsítéséhez és a termelékenység növeléséhez.
Support and Learning Resources
- Tanulási források
- Dokumentáció
- Forráskód
- API referenciák
- Terméktámogatás
- Ingyenes támogatás
- Fizetett támogatás
- Blog
- Kiadási megjegyzések
- Miért az Aspose.Zip a Python.Net számára?
- Ügyfelek listája
- Sikertörténetek