كيفية تشفير وفك تشفير ملف باستخدام Visual Basic .NET

الموضوع في 'منتدى شرح البرامج' بواسطة غزوان خليل, بتاريخ ‏نوفمبر 20, 2010.

  1. غزوان خليل

    غزوان خليل Member

    إنضم إلينا في:
    ‏أكتوبر 27, 2010
    المشاركات:
    194
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    16
    الجنس:
    ذكر
    مكان الإقامة:
    سوريا

    السلام عليكم ورحمة الله
    المقالة باللغة العربية :
    اليكم مقالة رائعة من مايكروسوفت توضع كيفية تشفير وفك تشفير ملف بإستخدام Visual Basic .NET
    مزودة بالمصادر و الاكواد لجميع لغات الدوت نت منMSDN
    توضح هذه المقالة كيفية استخدام فئات التشفير التي يتم توفيرها من قبل Microsoft .NET Framework. يمكنك استخدام الفئات التشفير لتشفير ملف نصي إلى حالة غير قابل للقراءة. ثم يمكن فك تشفير الملف النص إلى تنسيقها الأصلي.



    [​IMG]عودة إلى الأعلى
    متطلبات

    توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة و حزم الخدمات التي يجب أن يكون لديك:
    • 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
    [​IMG]عودة إلى الأعلى
    استخدام تشفير و إلغاء التشفير

    يوفر مساحة الاسم System.Security.Cryptographic في .NET Framework مجموعة متنوعة من الأدوات للمساعدة في التشفير وفي فك التشفير. فئة CryptoStream هي واحدة من العديد من الفئات التي يتم توفيرها. تم تصميم الفئة CryptoStream تشفير أو فك تشفير محتوى كما دفق المحتوى الخروج إلى ملف.

    لتشفير ملف اتبع الخطوات التالية:
    1. برنامج تشغيل Visual Studio .NET أو Visual Studio 2005.
    2. إنشاء تطبيق وحدة تحكم جديد في Visual Basic .NET أو في Visual Basic 2005. يتم إنشاء وحدة نمطية لك، مع إجراء Main() فارغ.
    3. استخدم العبارة عمليات الاستيراد حول من مساحة الاسم النظام مساحة الاسم 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
    4. إنشاء مفتاح سري تشفير فك تشفير البيانات. فئة 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)
    5. إضافة دالة التالية إنشاء مفتاح جديد لجلسة كما هو موضح في "الطريقة الثانية": ' 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
    6. إنشاء أسلوب في الفصل الدراسي المسمى EncryptFile. يجب أن يحتوي أسلوب EncryptFile المعلمات الثلاث:
      • sInputFile
      • sOutputFile
      • sKey (هذا هو المفتاح السري الذي يتم استخدامه لتشفير لفك تشفير الملف.)
      Sub EncryptFile(ByVal sInputFilename As String, _
      ByVal sOutputFilename As String, _
      ByVal sKey As String)
      End Sub
    7. في الإجراء EncryptFile إنشاء كائن يقوم FileStream إدخال والإخراج كائن يقوم FileStream. يمكن القراءة من هذه الكائنات وإعادة كتابتها إلى الملفات الهدف. Dim fsInput As New FileStream(sInputFilename, _
      FileMode.Open, FileAccess.Read)
      Dim fsEncrypted As New FileStream(sOutputFilename, _
      FileMode.Create, FileAccess.Write)
    8. قم بتعريف مثيل فئة DESCryptoServiceProvider. يمثل هذا التشفير الفعلي وتقنية فك التشفير الفعلي المستخدم على الملفات. عند هذه النقطة، يمكنك إنشاء موفر مختلف إذا كنت تريد استخدام الأمان RSA أو آخر تقنية التشفير. Dim DES As New DESCryptoServiceProvider()
    9. يجب توفير موفر خدمات التشفير مع المفتاح السري كـ صفيف من البايت. يوفر مساحة الاسم System.Text دالة يسمى GetBytes(). كجزء من ميزاته الترميز الدالة GetBytes() تأخذ سلسلة ومن ثم إرجاع صفيف من البايت. حجم المفتاح مختلفة بالنسبة لكل أسلوب التشفير. على سبيل المثال، تأخذ مقياس تشفير البيانات "(DES) مفتاح 64 بت يساوي 8 بايت أو 8 أحرف.

      إذا لم تقم بتوفير مفتاح الموفر بشكل عشوائي بإنشاء واحدة. هذا بتشفير الملف بنجاح ولكن لا توجد أية طريقة لفك تشفير الملف. لاحظ أنه يجب أيضاً توفير IV. يتم استخدام هذه القيمة كجزء من التشفير. مثل المفتاح, يتم إنشاء IV بشكل عشوائي إذا لم توفر القيمة. لأنه يجب أن تكون القيم نفسها من أجل التشفير وفك ، يجب أن لا سمحت الجيل عشوائي من هذه القيم. DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
      DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
    10. إنشاء مثيل لفئة CryptoStream. استخدام موفر خدمات التشفير إلى الحصول على كائن تشفير (CreateEncryptor) و الموجود لإخراج الكائن يقوم FileStream كجزء من المُنشئ.
      1. قراءة في ملف الإدخال ومن ثم كتابة إلى ملف الإخراج. المرور من خلال الكائن CryptoStream حيث تشفير الملف باستخدام المفتاح الذي قمت بتوفيره.
      فك تشفير ملف "، اتبع الخطوات التالية:
      1. إنشاء أسلوب يسمى DecryptFile. يشبه عملية فك التشفير عملية التشفير. ومع ذلك، لدى DecryptFile اختلافات رئيسية اثنين من الإجراء EncryptFile.
        • يتم استخدام CreateDecryptor بدلاً من CreateEncryptor لإنشاء كائن CryptoStream التي تحدد كيف يمكن استخدام الكائن.
        • عند كتابة النص الذي تم فك تشفيره إلى الملف الوجهة CryptoStream هو الآن مصدر بدلاً من دفق الوجهة.
      2. أضف الأسطر التالية إلى إجراء Main() استدعاء كل EncryptFile و DecryptFile.


    1. حفظ الملف. تشغيل التطبيق الخاص بك. تأكد من أن المسار الذي يتم استخدام اسم ملف الإدخال يشير إلى ملفات غير هامة مع موجودة.


    تحقق من التي في التشفير و إلغاء التشفير في العمل

    اختبار هذه التعليمة البرمجية باستخدام ملف نصي (.txt) للتأكد من أن الملف هذا بشكل صحيح تشفير ثم فك تشفيرها. تأكد من تشفير الملف إلى ملف جديد (كما هو موضح في الإجراء Main() Sub في هذه المقالة) بدلاً من الملف الأصلي. فحص ملف تم فك تشفيره ومقارنة فك تشفير الملف الأصلي.

    قائمة رمز اكتمال
     
  2. لهب شمعة

    لهب شمعة New Member

    إنضم إلينا في:
    ‏أغسطس 30, 2010
    المشاركات:
    4,448
    الإعجابات المتلقاة:
    4
    نقاط الجوائز:
    0
    مكان الإقامة:
    in the deark


    بارك الله فيك

    و نفع بعلمك

    مجهود جبار
     
  3. DeleGnT

    DeleGnT Delegnt.net Moderator

    إنضم إلينا في:
    ‏أغسطس 25, 2010
    المشاركات:
    25,790
    الإعجابات المتلقاة:
    155
    نقاط الجوائز:
    78
    الجنس:
    ذكر
    الوظيفة:
    FREE
    مكان الإقامة:
    DeleGnT.NeT


    تسلم على النقل
     
  4. AwTar Al-MaSh3r

    AwTar Al-MaSh3r New Member

    إنضم إلينا في:
    ‏نوفمبر 2, 2010
    المشاركات:
    1,247
    الإعجابات المتلقاة:
    1
    نقاط الجوائز:
    0


    بارك الله فيك
     
  5. غزوان خليل

    غزوان خليل Member

    إنضم إلينا في:
    ‏أكتوبر 27, 2010
    المشاركات:
    194
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    16
    الجنس:
    ذكر
    مكان الإقامة:
    سوريا


    بارك الله بكم على الردود الرائعة والتشجيعة واتمنى أن اكون أفدت المعهد والأعضاء الكرام
     
  6. مصطفى محمد عادل

    مصطفى محمد عادل New Member

    إنضم إلينا في:
    ‏ديسمبر 7, 2010
    المشاركات:
    4
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    0


    بارك الله فيك
     
  7. ط¹ط¶ظˆ ط¬ط¯ظٹط¯222

    ط¹ط¶ظˆ ط¬ط¯ظٹط¯222 New Member

    إنضم إلينا في:
    ‏ديسمبر 5, 2010
    المشاركات:
    44
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    0


    ممكن رابط للبرنامج
     
  8. نور الأسدي

    نور الأسدي New Member

    إنضم إلينا في:
    ‏مارس 5, 2011
    المشاركات:
    394
    الإعجابات المتلقاة:
    1
    نقاط الجوائز:
    0


    سلمت يداك اخوي ..
     
  9. Sons Of Saints

    Sons Of Saints New Member

    إنضم إلينا في:
    ‏فبراير 25, 2011
    المشاركات:
    2,591
    الإعجابات المتلقاة:
    24
    نقاط الجوائز:
    0


    يسعدك ربي من كل مكروة ..

    مجهود مميز وأكثر من رائع ..

    أستمر بطرح أبداعاتك معنا ..

    //
     
  10. emamgsm

    emamgsm New Member

    إنضم إلينا في:
    ‏يوليو 14, 2011
    المشاركات:
    33
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    0


    بارك الله فيك
     
  11. salah222

    salah222 New Member

    إنضم إلينا في:
    ‏يوليو 29, 2011
    المشاركات:
    541
    الإعجابات المتلقاة:
    1
    نقاط الجوائز:
    0
    مكان الإقامة:
    algerie



    بارك الله فيك

    مجهود مميز وأكثر من رائع

     
  12. elaby

    elaby New Member

    إنضم إلينا في:
    ‏سبتمبر 5, 2011
    المشاركات:
    109
    الإعجابات المتلقاة:
    0
    نقاط الجوائز:
    0


    مجهود جبار
     
  13. The Legend222

    The Legend222 New Member

    إنضم إلينا في:
    ‏سبتمبر 29, 2011
    المشاركات:
    2,752
    الإعجابات المتلقاة:
    7
    نقاط الجوائز:
    0
    الوظيفة:
    Student
    مكان الإقامة:
    K.S.A


    يـعـطـيـك الـعـافـيـة

    :3:
     
  14. داق الكيف

    داق الكيف عضو مميّز

    إنضم إلينا في:
    ‏مارس 30, 2012
    المشاركات:
    2,790
    الإعجابات المتلقاة:
    54
    نقاط الجوائز:
    63
    الجنس:
    ذكر
    الوظيفة:
    .~. طالَََبَ في جأَمِْعَة إِلاَمَأَمْ .~.
    مكان الإقامة:
    .~. مَدِيِنَّة الرِيّاض .~.


    .~. لآهنت يآلبى قلبكككككككككككككككككككك [​IMG] .~.
     
  15. esam 934

    esam 934 New Member

    إنضم إلينا في:
    ‏سبتمبر 24, 2012
    المشاركات:
    37
    الإعجابات المتلقاة:
    1
    نقاط الجوائز:
    0


    رائعععععععععععع
     

مشاركة هذه الصفحة