واضح آرشیو وب فارسی:سایت ریسک: t=17099">Password Hashing در #C mahyar_nel 02 شهريور 1383, 20:16Hashing در #C ASP.NET روش مناسبي براي ايجاد رشته هاي Hash شده از مقادير ورودي كاربر تدارك ديده است . اگر شما بخواهيد كه كلمه رمزتان را به صورت معمولي در Database يا فايل ذخيره كنيد ؛ در صورتيكه هكري بتواند به آن فايل يا Database دسترسي پيدا كند به راحتي مي تواند به اين كلمات رمز دسترسي داشته باشد و از آنها استفاده نمايد . بنابراين براي مخفي سازي كلمات رمز كاربران در Database مي توان يك مقدار Hash شده از آن كلمه رمز ايجاد كرد و آن را در Database ذخيره نمود . فايده اين كار اين است كه حتي در صورتيكه فردي به اين مقدار Hash شده دسترسي پيدا كند باز نمي تواند از آن استفاده نمايد و به محتواي آن پي ببرد .همچنين اشكال اين روش اين است كه در صورتيكه كاربر كلمه رمز خود را فراموش كند بازيابي آن بسيار مشكل خواهد بود . چگونگي اعتبارسنجي با استفاده از كلمه رمز درهم سازي شده در شرايط معمول وقتي شما كلمه رمز را در Database به شكل واقعي آن ذخيره مي كيد ، شما مي توانيد به راحتي با پيداكردن كلمه رمز مربوط به آن نام كاربري در Database و مقايسه آن با كلمه رمز ورودي كاربر اعتبار اطلاعات ورودي را مشخص كنيد . بديهي است كه اعتبارسنجي با استفاده از كلمات رمز Hash شده كمي مشكل تر از اين روش معمول مي باشد . براي اين كار شما يك مقدار Hash شده از كلمه رمز ورودي كاربر بايد ايجاد نماييد و سپس باكلمه رمزHash شده اي كه قبلاً در Database ذخيره شده است مقايسه كنيد ، اگر هر دو رشته Hash شده با هم برابر باشند در اين صورت اعتبار كاربر تاييد مي شود . براي مثال : string strUserInputtedHashedPassword = FormsAuthentication.HashPasswordForStoringInConfig File(tbPassword.Text, "sha 1"); if (strUserInputtedHashedPassword == GetUsersHashedPasswordUsingUserName(tbUserName.Tex t)) { // sign-in successfull } else { // sign-in failed } حال شما مي توانيد با استفاده از اين كد ها يك نمونه كلمات درهم سازي شده براي خود ايجاد نماييد: protected TextBox tbPassword; protected Literal liHashedPassword; private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here } public void btnHash_Click(object sender, EventArgs e) { if (tbPassword.Text.Length > 0) { string strHashedPassword = FormsAuthentication.HashPasswordForStoringInConfig File (tbPassword.Text, "sha 1"); liHashedPassword.Text = "Hashed Password is: " + strHashedPassword; } } به نمونه هاي زير توجه نماييد . 415AB 40AE9B 7CC4E66D 6769CB 2C08106E8293B 48 == sha 1 462 F4BAC142BBFCF47C11941AD 76018DDD 4DE1D 8 == mansoor كپي رايت:
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 617]