التشفير باستخدام MD5
تستخدم خوارزمية MD5 لتشفير الكلمات السرية , والميزة من هذه الخوارزمية انها غير قابلة لفك التشفير Decrypt , وبالتالي فانه من المستحيل سرقة الكلمة السرية حتى من مشرف او مدير الموقع .ولكن تبقى قضية ال Login . فلو ادخل المستخدم الكلمة السرية كي يعمل Login فكيف للموقع معرفة ما اذا كانت الكلمة السرية صحيحة ام لا الا اذا قام بفك التشفير و مطابقتها بالاصل , وبما ان MD5 غير قابلة لفك التشفير فهناك طريقة اخرى للتاكد من الكلمة السرية وهي ان يقوم الموقع بتشفير الكلمة السرية التي ادخلها المستخدم ومن ثم يقوم بمقارنة الشفرة بالشفرة المخزنة في قاعدة البيانات , فاذا كانت متطابقة فانه يقوم بال Login والا فلا.
الدالة التي تقوم بتشفير النص هي ComputeHash والتي تقوم بتحويل البايتات التي تمثل النص الى مصفوفة بايتات , ولانها تحول بايتات النص فيجب اولا تحويل النص الى بايتات وذلك باستخدام الكلاس UTF8Encoding والذي به الدالة GetByte والتي تقوم بتحويل النص الى بايتات (كما هو معلوم فان اصل البيانات مكون من بايتات)
اليكم كود التشفير باستخدام خوارزمية MD5 :
'النص المراد تشفيره Dim txt As String = "Encrypt me!" 'متغير من فئة بايت والذي سوف يمثل النص Dim Bytes As Byte() ' الكلاس الذي يستخدم لتحويل النص الى بايتات Dim encoder As New UTF8Encoding() 'MD5 Class Dim md5Hasher As New MD5CryptoServiceProvider() ' عملية التشفير : تحويل النص الى البايتات التي تمثله - تحويل بايتات النص الى مصفوفة بايتات Bytes = md5Hasher.ComputeHash(encoder.GetBytes(txt))
ولا تنسى ان تكتب قبل كل شيء
Imports System.Security.Cryptography Imports System.Text Imports System.Data
يبقى علينا
1- حفظ الكلمة السرية في قاعدة بيانات .
2- عملية الدخول Login .
ارجو من اهل الخبرة ان يساعدوننا فيها .

