المصدر: كيفية تشفير وفك تشفير ملف باستخدام Visual Basic .NET في منتدى : منتدى شرح البرامج السلام عليكم ورحمة الله المقالة باللغة العربية : اليكم مقالة رائعة من مايكروسوفت توضع كيفية تشفير وفك تشفير ملف بإستخدام Visual Basic .NET مزودة بالمصادر و الاكواد لجميع لغات الدوت نت منMSDN توضح هذه المقالة كيفية استخدام فئات التشفير التي يتم توفيرها من قبل Microsoft .NET Framework. يمكنك استخدام الفئات التشفير لتشفير ملف نصي إلى حالة غير قابل للقراءة. ثم يمكن فك تشفير الملف النص إلى تنسيقها الأصلي. عودة إلى الأعلى متطلبات توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة و حزم الخدمات التي يجب أن يكون لديك: Microsoft Windows XP أو Microsoft Windows Server 2003 Microsoft Windows 2000 Professional Microsoft Windows 2000 Server Microsoft Windows 2000 Server، متقدمة أو Microsoft Windows NT 4.0 Server Microsoft Visual Studio .NET أو Microsoft Visual Studio 2005 عودة إلى الأعلى استخدام تشفير و إلغاء التشفير يوفر مساحة الاسم System.Security.Cryptographic في .NET Framework مجموعة متنوعة من الأدوات للمساعدة في التشفير وفي فك التشفير. فئة CryptoStream هي واحدة من العديد من الفئات التي يتم توفيرها. تم تصميم الفئة CryptoStream تشفير أو فك تشفير محتوى كما دفق المحتوى الخروج إلى ملف. لتشفير ملف اتبع الخطوات التالية: برنامج تشغيل Visual Studio .NET أو Visual Studio 2005. إنشاء تطبيق وحدة تحكم جديد في Visual Basic .NET أو في Visual Basic 2005. يتم إنشاء وحدة نمطية لك، مع إجراء Main() فارغ. استخدم العبارة عمليات الاستيراد حول من مساحة الاسم النظام مساحة الاسم System.Security مساحة الاسم System.Security.Cryptography مساحة الاسم System.Text مساحة الاسم System.IO. يجب إجراء ذلك بحيث لا يلزم تأهيل التعريفات من مساحات الأسماء هذه فيما بعد في التعليمات البرمجية الخاصة بك. يجب استخدام هذه العبارات قبل أي التعريفات الأخرى. Imports System Imports System.IO Imports System.Security Imports System.Security.Cryptography Imports System.Runtime.InteropServices Imports System.Text إنشاء مفتاح سري تشفير فك تشفير البيانات. فئة DESCryptoServiceProvider يستند إلى خوارزمية تشفير المتناظر. يتطلب تشفير متماثل والمفتاح خط متجه تهيئة (IV) لتشفير البيانات. لفك تشفير البيانات ، يجب أن يكون لديك نفس مفتاح و IV نفس. يجب عليك أيضاً استخدام خوارزمية تشفير نفس. يمكنك إنشاء المفاتيح باستخدام أي من الطرق التالية: الأسلوب 1 يمكنك مطالبة المستخدم بكلمة مرور. ثم، استخدم كلمة المرور المفتاح و IV. الأسلوب 2 عند إنشاء مثيل جديد من فئات التشفير المتناظر يتم تلقائياً إنشاء مفتاح جديد و IV جديدة من أجل جلسة العمل. يمكن استخدام المفتاح IV التي تم إنشاؤها بواسطة المدارة المتماثل التشفير الفئات لتشفير و لفك تشفير الملف. للحصول على مزيد من المعلومات حول كيفية إنشاء توزيع مفاتيح بزيارة موقع Microsoft التالي على الويب أو راجع وثائق مجموعة أدوات (SDK) تطوير برنامج .NET Framework: http://msdn.microsoft.com/en-us/library/5e9ft273(VS.71).aspx (http://msdn.microsoft.com/en-us/library/5e9ft273(VS.71).aspx) إضافة دالة التالية إنشاء مفتاح جديد لجلسة كما هو موضح في "الطريقة الثانية": ' Call this function to remove the key from memory after it is used for security. Private Declare Sub ZeroMemory Lib "kernel32.dll" Alias "RtlZeroMemory" _ (ByVal Destination As String, ByVal Length As Integer) ' Function to generate a key. Function GenerateKey() As String ' Create an instance of Symmetric Algorithm. The key and the IV are generated automatically. Dim desCrypto As DESCryptoServiceProvider = DESCryptoServiceProvider.Create() ' Use the automatically generated key for encryption. Return ASCIIEncoding.ASCII.GetString(desCrypto.Key) End Function إنشاء أسلوب في الفصل الدراسي المسمى EncryptFile. يجب أن يحتوي أسلوب EncryptFile المعلمات الثلاث: sInputFile sOutputFile sKey (هذا هو المفتاح السري الذي يتم استخدامه لتشفير لفك تشفير الملف.) Sub EncryptFile(ByVal sInputFilename As String, _ ByVal sOutputFilename As String, _ ByVal sKey As String) End Sub في الإجراء EncryptFile إنشاء كائن يقوم FileStream إدخال والإخراج كائن يقوم FileStream. يمكن القراءة من هذه الكائنات وإعادة كتابتها إلى الملفات الهدف. Dim fsInput As New FileStream(sInputFilename, _ FileMode.Open, FileAccess.Read) Dim fsEncrypted As New FileStream(sOutputFilename, _ FileMode.Create, FileAccess.Write) قم بتعريف مثيل فئة DESCryptoServiceProvider. يمثل هذا التشفير الفعلي وتقنية فك التشفير الفعلي المستخدم على الملفات. عند هذه النقطة، يمكنك إنشاء موفر مختلف إذا كنت تريد استخدام الأمان RSA أو آخر تقنية التشفير. Dim DES As New DESCryptoServiceProvider() يجب توفير موفر خدمات التشفير مع المفتاح السري كـ صفيف من البايت. يوفر مساحة الاسم System.Text دالة يسمى GetBytes(). كجزء من ميزاته الترميز الدالة GetBytes() تأخذ سلسلة ومن ثم إرجاع صفيف من البايت. حجم المفتاح مختلفة بالنسبة لكل أسلوب التشفير. على سبيل المثال، تأخذ مقياس تشفير البيانات "(DES) مفتاح 64 بت يساوي 8 بايت أو 8 أحرف. إذا لم تقم بتوفير مفتاح الموفر بشكل عشوائي بإنشاء واحدة. هذا بتشفير الملف بنجاح ولكن لا توجد أية طريقة لفك تشفير الملف. لاحظ أنه يجب أيضاً توفير IV. يتم استخدام هذه القيمة كجزء من التشفير. مثل المفتاح, يتم إنشاء IV بشكل عشوائي إذا لم توفر القيمة. لأنه يجب أن تكون القيم نفسها من أجل التشفير وفك ، يجب أن لا سمحت الجيل عشوائي من هذه القيم. DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey) DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey) إنشاء مثيل لفئة CryptoStream. استخدام موفر خدمات التشفير إلى الحصول على كائن تشفير (CreateEncryptor) و الموجود لإخراج الكائن يقوم FileStream كجزء من المُنشئ. قراءة في ملف الإدخال ومن ثم كتابة إلى ملف الإخراج. المرور من خلال الكائن CryptoStream حيث تشفير الملف باستخدام المفتاح الذي قمت بتوفيره. فك تشفير ملف "، اتبع الخطوات التالية: إنشاء أسلوب يسمى DecryptFile. يشبه عملية فك التشفير عملية التشفير. ومع ذلك، لدى DecryptFile اختلافات رئيسية اثنين من الإجراء EncryptFile. يتم استخدام CreateDecryptor بدلاً من CreateEncryptor لإنشاء كائن CryptoStream التي تحدد كيف يمكن استخدام الكائن. عند كتابة النص الذي تم فك تشفيره إلى الملف الوجهة CryptoStream هو الآن مصدر بدلاً من دفق الوجهة. أضف الأسطر التالية إلى إجراء Main() استدعاء كل EncryptFile و DecryptFile. حفظ الملف. تشغيل التطبيق الخاص بك. تأكد من أن المسار الذي يتم استخدام اسم ملف الإدخال يشير إلى ملفات غير هامة مع موجودة. تحقق من التي في التشفير و إلغاء التشفير في العمل اختبار هذه التعليمة البرمجية باستخدام ملف نصي (.txt) للتأكد من أن الملف هذا بشكل صحيح تشفير ثم فك تشفيرها. تأكد من تشفير الملف إلى ملف جديد (كما هو موضح في الإجراء Main() Sub في هذه المقالة) بدلاً من الملف الأصلي. فحص ملف تم فك تشفيره ومقارنة فك تشفير الملف الأصلي. قائمة رمز اكتمال