15-10-12, 10:14 AM
كاتب الموضوع : !TheCodeOfSilence
بسم الله الرحمن الرحيم
بسم الله الرحمن الرحيم
فى الموضوع الاول تكلمنا عن انواع التشفير
اما فى هذا الموضوع سنتكلم عن One-Way Hashing
فى هذا النوع يمكن تشفير النص لكن لا يمكن ارجاع النص المشفر الى النص الاصلى
لذلك هو مناسب لكلمات السر
يتم تشفير كلمه السر وحفظها داخل قاعدة البيانات
وعند قيام المستخدم بادخال الرقم السرى يتم تشفيره ومقارنته مع النص الموجود داخل قاعدة البيانات
اذا قام اى شخص بفتح قاعدة البيانات فانه لن يتمكن من معرفه كلمه السر لانها مشفرة ولا يمكن ارجاعها الى نص اصلى
SHA1
MD5
SHA1 تم كسرها من قبل القراصنه
المهم
سوف نقوم باستخدام MD5
اولا نقوم باستيراد الاتى
كود :
Imports System.Security.Cryptography
Dim MD As New MD5CryptoServiceProvider
ComputeHash(PlainText)
ِComputeHash
تقوم باخذ النص الاصلى على هيئه مصفوفه من نوع بايت وتعيد النص المشفر على هيئه مصفوفة من نوع بايت
لذا علينا تحويل النص الاصلى PlainText من String الى مصفوفه من نوع Byte
Dim bytSource() As Byte
سنقوم باستخدام الشفرة الموحدة Unicode لكى تعيد لنا الرقم المميز لكل حرف
Dim uEncode As New System.Text.UnicodeEncoding
نقوم بتحويل النص الاصلى من String الى مصفوفه من نوع Byte
bytSource = uEncode.GetBytes(PlanText)
نقوم بتعريف متغير لكى نضع فية لبنص بعد تشفيره
Dim bytHash() As Byte
الان نقوم بالتشفير النص الاصلى يسمى PlainText
bytHash = MD.ComputeHash(bytSource)
الان نقوم بالتحويل من مصفوفه من نوع Byte الى String
Convert.ToBase64String(bytHash)
الكود
انا قمت بعمل دالة تاخذ النص الاصلى و نوع التشفير وتقوم بارجاع النص النشفر على هيئة String
كود :
Private Function CreatHash(ByVal PlanText As String, ByVal Mode As HashAlgorithm) As String
Dim bytHash() As Byte
Dim uEncode As New System.Text.UnicodeEncoding
Dim bytSource() As Byte
bytSource = uEncode.GetBytes(PlanText)
bytHash = Mode.ComputeHash(bytSource)
Return Convert.ToBase64String(bytHash)
End Function