• 0

كيف أشفّر كلمة المرور في aspx؟

لدي صفحة تسجيل .aspx ، مربوطة بقاعدة بيانات، أريد تشفير كلمات المرور عند وضعها في قاعدة البيانات بواسطة md5 أو sha1، فهل يمكن شرح الأمر ببساطة؟
وأريد أن أعلم أيضاً بشكل عام ومبسط ما هي أنواع التشفير، أعني هنالك md5 و sha1 وماذا أيضاً؟ وما الفرق بينهم جميعاً؟
طبعاً أستخدم لغة C# في برمجة السيرفر.
شكراً للمساعدة :)

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

توفر تقنية MD5 إمكانية تشفير النصوص بطريقة لا يمكن فيها الرجوع للنص الأصلي بحيث تتم المقارنة بين النصوص بعد التشفير ولا يتم التعامل مع النصوص بصيغتها الأصلية.
يتم تشفير النصوص باستخدام الصف MD5 في C# وإنشاء غرض منه من النوع MD5CryptoServiceProvider:
كما في المثال التالي:

MD5 md5 = new MD5CryptoServiceProvider();

ومن ثم استدعاء الدالة CopmuteHash وتمرير معامل Argument وهو النص المراد تشفيره باستخدام ASCIIEncoding.ASCII.GetBytes(text).

//compute hash from the bytes of text
        md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));

بعد ذلك قم بأخذ القيمة من الغرض md5 عن طريق الدالة Hash حيث أن القيمة المرتجعة هي عبارة مصفوفة من byte.

   byte[] result = md5.Hash;

في النهاية أنشئ StringBuilder واعمل append للنتيجة كما في المثال التالي:

  public static string MD5Hash(string text)
    {
        MD5 md5 = new MD5CryptoServiceProvider();

        //compute hash from the bytes of text
        md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));

        //get hash result after compute it
        byte[] result = md5.Hash;

        StringBuilder strBuilder = new StringBuilder();
        for (int i = 0; i < result.Length; i++)
        {
            //change it into 2 hexadecimal digits
            //for each byte
            strBuilder.Append(result[i].ToString("x2"));
        }
        return strBuilder.ToString();
    }

تشفير نصوص باستخدام MD5

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

يمكنك استخدام هذه الدالة للتشفير باستخدم MD5 في لغة C#:

private string md5(string sPassword)
{
    System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
    byte[] bs = System.Text.Encoding.UTF8.GetBytes(sPassword);
    bs = x.ComputeHash(bs);
    System.Text.StringBuilder s = new System.Text.StringBuilder();
    foreach (byte b in bs)
    {
        s.Append(b.ToString("x2").ToLower());
    }
    return s.ToString();
}

وللتجربة يمكنك استخدام الشيفرة البرمجية التالية بلغة HTML:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Label ID="Label1" runat="server" Text="Label">Enter Password</asp:Label>
    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox><br />
    <asp:Label ID="Label2" runat="server" Text="" Font-Bold="true"></asp:Label><br />
    <asp:Button ID="Button1" runat="server" Text="Convert to MD5" 
        onclick="Button1_Click" />
</asp:Content>

وفي حدث زر Button1 ضع الشيفرة التالية ليتم عرض كود MD5:

Label2.Text = md5(txtPassword.Text);

ولاستعمال الطريقة في موقعك يمكنك تشفير كلمات المرور باستخدام خوارزمية MD5 حيث أنه كلما وضع شخص كلمة المرور ستشفرها وتقارنها مع شيفرة MD5 الموجودة داخل قاعدة البيانات.

الفرق بين أنواع التشيفرات المختلفة هي الخوارزمية المستخدمة في التشفير ويعتبر MD5 و SHA-1 أشهرها.

المصادر 1 2

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن