Á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
- 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