نظرة عامة
يعد أمن البيانات أمرًا بالغ الأهمية في المشهد الرقمي اليوم، وإحدى الطرق الفعالة لحماية المعلومات الحساسة هي من خلال التشفير. سترشدك هذه النظرة العامة حول كيفية تشفير أو فك تشفير أرشيف كامل أو إدخالات محددة بداخله، مما يضمن سرية بياناتك وسلامتها. يسهل Aspose.ZIP مجموعة من العمليات المتعلقة بتشفير وفك تشفير الأرشيفات.كيفية تشفير أو فك تشفير أرشيف ZIP بالكامل
تشفير الأرشيف المضغوط بالطريقة التقليدية
هناك طريقتان متاحتان لتشفير أرشيف ZIP: التقليدية، التي تعتبر ضعيفة الآن، وAES الحديثة. يسمح معيار ZIP بتشفير أي إدخال باستخدام أي من هذه الطرق حتى داخل نفس الأرشيف. يوفر تشفير AES أمانًا أقوى ويتوفر بأطوال مفاتيح مختلفة (128 بت و192 بت و256 بت). يوفر حماية أفضل للبيانات الحساسة داخل أرشيفات ZIP.
الملفات مضغوطة ببرنامج Deflate
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);
}
}
تشفير الأرشيف بأكمله بطريقة AES
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);
}
}
}
توضح هذه العينات كيفية تضمين مثيلات EncryptionSetting في منشئ الأرشيف المقابل . يتيح ذلك تشفيرًا انتقائيًا للإدخالات الفردية، مع إبقاء الإدخالات الأخرى غير مشفرة.
قم بتشفير الإدخال الثاني من الثلاثة في Zip Archive
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);
}
}
على الرغم من أن الأمر قد يبدو غير تقليدي، إلا أنه من الممكن بالفعل تشفير إدخالات معينة داخل أرشيف ZIP باستخدام طرق تشفير وكلمات مرور مختلفة. يسمح هذا الأسلوب بإستراتيجية أمان أكثر تفصيلاً وتخصيصًا، حيث يمكن أن تتمتع الملفات الفردية أو مجموعات الملفات بمستويات مختلفة من الحماية. ومع ذلك، من المهم ملاحظة أن هذه الممارسة قد تؤدي إلى تعقيد عملية الإدارة وفك التشفير، وقد يختلف التوافق مع أدوات أرشيف ZIP المختلفة.
تشفير الرمز البريدي بطرق وكلمات مرور مختلفة
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 إضافة تشفير إلى أرشيف موجود دون إعادة تعبئة المحتويات بالكامل. ومع ذلك، من المهم ملاحظة أن جميع إدخالات الأرشيف يجب أن تكون غير محمية؛ وإلا، سيتم رفع استثناء.
تشفير أرشيف ZIP الموجود
using (var archive = new Archive("plain.zip"))
{
archive.Save("encrypted.zip", new ArchiveSaveOptions()
{
EncryptionOptions = new AesEcryptionSettings("p@s$", EncryptionMethod.AES256)
});
}
فك تشفير أرشيف مضغوط
لدى المستخدم خيار فك تشفير إما إدخال محدد داخل أرشيف ZIP المشفر أو الأرشيف بأكمله ككل.
فك تشفير إدخال معين
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);
}
}
فك تشفير أرشيف Zip بأكمله
في هذه الحالة نحن بحاجة إلى توفير كلمة المرور داخل المنشئ.
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
فك تشفير أرشيف RAR
لا يدعم Aspose.ZIP تكوين أرشيف RAR، ولكنه يدعم الاستخراج فقط. يمكن تشفير
أرشيف RAR
مع حماية أسماء الملفات أو بدونها.
في الحالة السابقة، يحتاج المستخدم إلى توفير كلمة مرور فك التشفير داخل
RarArchiveLoadOptions
في بداية إنشاء مثيل أرشيف RAR. وفي الحالة الأخيرة، من الممكن تمرير كلمة المرور لاحقًا عند استخراج الإدخال.
فك تشفير أرشيف RAR بالكامل بأسماء الملفات المشفرة
using (RarArchive archive = new RarArchive("source.rar",
new RarArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
archive.ExtractToDirectory("destination");
}
فك تشفير إدخال معين من أرشيف RAR
قد يعمل هذا النموذج إذا تم تشفير محتوى الإدخالات فقط ولكن أسماء الملفات ليست كذلك.
using (RarArchive archive = new RarArchive("source.rar"))
{
archive.Entries[0].Extract("first_entry.bin", "p@s$");
}
فك تشفير إدخال معين من أرشيف RAR كدفق
ومع ذلك، في هذه العينة ، الافتراض هو أنه يتم تشفير محتوى الإدخالات فقط، وليس أسماء الملفات . وهذا يتطلب نسخ بايت الإدخال إلى دفق الذاكرة.
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 بالكامل
طرق تشفير ملفات أرشيف 7z
الخيار الوحيد لتشفير أرشيف 7z هو AES .
قم بالتشفير والضغط باستخدام أرشيف LZMA2 بالكامل 7z
تدعم أرشيفات 7Z القدرة على تشفير كل إدخال بكلمة مرور خاصة به أو تركه بدون حماية.
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 باستخدام كلمات المرور الخاصة وترك إدخال واحد غير مشفر
كما هو الحال مع ZIP، يمكن للمستخدم فك تشفير الأرشيف بالكامل أو إدخال معين منه.
يمكن تشفير أرشيف 7Z مع أو بدون حماية أسماء الملفات. إذا كانت أسماء الملفات مشفرة، فستحتاج إلى توفير كلمة المرور
عند إنشاء مثيل للأرشيف
.
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);
}
}
فك تشفير الأرشيف بأكمله بأسماء الملفات المشفرة إلى الدليل
سواء كانت أسماء الملفات مشفرة أم لا، فمن الآمن توفير كلمة المرور داخل عملية استخراج المنشئ.
لن يعمل النموذج أدناه إلا عندما يكون المحتوى محميًا فقط.
using (SevenZipArchive archive = new SevenZipArchive("archive.7z", "p@s$"))
{
archive.ExtractToDirectory("C:\\extracted");
}
فك تشفير إدخال معين
using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin", "p@s$");
}
ميزات Aspose.ZIP الأخرى المدعومة لـ .NET API
استخدم مكتبة Aspose.ZIP C# لتحويل مستندات الملفات المضغوطة ودمجها وتحريرها واستخراج البيانات من الأرشيفات والمزيد!
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