Áttekintés

Az adatbiztonság a legfontosabb a mai digitális környezetben, és az érzékeny adatok védelmének egyik hatékony módja a titkosítás. Ez az áttekintés elvezeti Önt egy teljes archívum vagy az abban található egyes bejegyzések titkosításához vagy visszafejtéséhez, biztosítva adatai bizalmasságát és integritását. Az Aspose.ZIP számos műveletet tesz lehetővé az archívumok titkosításával és visszafejtésével kapcsolatban.

A teljes ZIP-archívum titkosítása vagy visszafejtése

Zip archívum titkosítása hagyományos módszerrel

A ZIP archívumhoz két titkosítási módszer áll rendelkezésre: a hagyományos, jelenleg gyengének ítélt és a modern AES. A ZIP szabvány lehetővé teszi bármely bejegyzés titkosítását ezen módszerek bármelyikével, még ugyanazon az archívumban is. Az AES titkosítás erősebb biztonságot kínál, és különböző kulcshosszúságokkal (128 bites, 192 bites és 256 bites) érhető el. Jobb védelmet biztosít a ZIP archívumokban lévő érzékeny adatok számára.

Deflate-tel tömörített fájlok

    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);
        }
    }

A teljes archívum titkosítása AES módszerrel

    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);
            }
        }
    }

Ezek a minták bemutatják, hogyan ágyazhat be EncryptionSetting példányokat a megfelelő Archívum konstruktorba . Ez lehetővé teszi az egyes bejegyzések szelektív titkosítását, a többiek titkosítása nélkül.

Titkosítsa a három közül a második bejegyzést a Zip Archívumban

    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);
        }
    }

Bár szokatlannak tűnhet, valóban lehetséges bizonyos bejegyzések titkosítása egy ZIP-archívumban különböző titkosítási módszerek és jelszavak használatával. 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.

A Zip titkosítása különböző módszerekkel és jelszavakkal

    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);
        }
    }

Az Aspose.ZIP lehetővé teszi, hogy titkosítást adjon egy meglévő archívumhoz a tartalom teljes újracsomagolása nélkül. Fontos azonban megjegyezni, hogy az archívum minden bejegyzésének védelem nélkülinek kell lennie; ellenkező esetben kivételt tesznek.

Meglévő ZIP archívum titkosítása

    using (var archive = new Archive("plain.zip"))
    {
        archive.Save("encrypted.zip", new ArchiveSaveOptions() 
        { 
            EncryptionOptions = new AesEcryptionSettings("p@s$", EncryptionMethod.AES256)
        });
    }

Zip archívum visszafejtése

A felhasználónak lehetősége van egy adott bejegyzés visszafejtésére a titkosított ZIP-archívumban vagy a teljes archívum egészében.

Egy adott bejegyzés visszafejtése

    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);
        }
    }

A teljes Zip archívum visszafejtése

Ebben az esetben jelszót kell megadnunk egy konstruktoron belül.

    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);
            }
        }
    }

A RAR archívum titkosítása vagy visszafejtése

RAR archívum visszafejtése

Az Aspose.ZIP nem támogatja a RAR archívum összeállítását, csak a kibontást. A RAR-archívum titkosítható védő 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

    using (RarArchive archive = new RarArchive("source.rar", 
    new RarArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
    {
        archive.ExtractToDirectory("destination");
    }

Egy adott bejegyzés visszafejtése a RAR archívumból

Ez a minta akkor működne, ha csak a bejegyzések tartalma van titkosítva, de a fájlnevek nem.

    using (RarArchive archive = new RarArchive("source.rar"))
    {
        archive.Entries[0].Extract("first_entry.bin", "p@s$");
    }

Egy adott bejegyzés visszafejtése a RAR archívumból adatfolyamként

Azonban ebben a mintában az a feltételezés, hogy csak a bejegyzések tartalma van titkosítva, a fájlnevek nem . Ez szükségessé teszi a belépési bájtok átmásolását egy memóriafolyamba.

    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);
            }
        }
    }

A teljes 7ZIP archívum titkosítása vagy visszafejtése

Módszerek a 7z archív fájlok titkosítására

A 7z archívum titkosításának egyetlen lehetősége az AES .

Titkosítás és tömörítés az LZMA2 teljes 7z archívumával

A 7Z archívum támogatja az egyes bejegyzések titkosítását saját jelszóval vagy védelem nélkül hagyását.

    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);
        }
    }

Titkosítsa a 7z archívum bejegyzéseit saját jelszavakkal, és hagyjon egy bejegyzést titkosítatlanul

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ívum példányosításánál .

    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);
        }
    }

A teljes archívum visszafejtése titkosított fájlnevekkel a könyvtárba

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.

    using (SevenZipArchive archive = new SevenZipArchive("archive.7z", "p@s$")) 
    { 
        archive.ExtractToDirectory("C:\\extracted");
    }

Egy adott bejegyzés visszafejtése

    using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
    {
        archive.Entries[0].Extract("data.bin", "p@s$");
    }

Egyéb támogatott Aspose.ZIP a .NET API-hoz

Használja az Aspose.ZIP C# könyvtárat a zip-fájlok konvertálásához, egyesítéséhez, szerkesztéséhez, adatok kinyeréséhez az archívumból és még sok máshoz!

  

Support and Learning Resources

  
  

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