نمایش نتایج 1 تا 2 از 2

نام تاپیک: اظافه کردن application setting بصورت ایمن

  1. #1

    اظافه کردن application setting بصورت ایمن

    سلام دوستان
    یوزر پسورد برنامه رو اگه توی فایل user.config بخوایم ذخیره کنیم که بصورت clear نباشه چه چیزی باید اظافه کنیم؟؟

    private void button1_Click(object sender, EventArgs e)
    {
    Properties.Settings.Default.username = textBox1.Text;
    Properties.Settings.Default.password = textBox2.Text;
    Properties.Settings.Default.Save();
    }

    الان با کد بالا بصورت clear ذخیره میشه

  2. #2

    نقل قول: اظافه کردن application setting بصورت ایمن

    نقل قول نوشته شده توسط milad_d993 مشاهده تاپیک
    سلام دوستان
    یوزر پسورد برنامه رو اگه توی فایل user.config بخوایم ذخیره کنیم که بصورت clear نباشه چه چیزی باید اظافه کنیم؟؟

    private void button1_Click(object sender, EventArgs e)
    {
    Properties.Settings.Default.username = textBox1.Text;
    Properties.Settings.Default.password = textBox2.Text;
    Properties.Settings.Default.Save();
    }

    الان با کد بالا بصورت clear ذخیره میشه
    حدالامکان خود Username و Password یا حداقل Password رو چه کد شده و چه نشده اصلا ثبت نکنید، بجای ثبت مقدار شون Hash شون رو ثبت کنید.
    شما همیشه می توانید برای ذخیره سازی یک داده یک تابع رمزی دو طرفه (تابع کد کننده و تابع کد گشا) رو بکار ببرید، اما هر چقدر هم که تابع قوی ای باشه همچنان احتمال کشف داده ای که قابل برگشته هست.

    Hash تابع یکطرفه داره، یعنی نام کاربری و رمز عبور میتونه به سادگی به Hash تبدیل بشه اما از Hash نمیشه به سادگی به رمز عبور یا نام کاربری رسید و همین مساله امنیت رو بالا می بره.


    private void button1_Click(object sender, EventArgs e)
    {
    Properties.Settings .Default.username = GetHash (textBox1.Text);
    Properties.Settings .Default.password = GetHash (textBox2.Text);
    Properties.Settings .Default.Save();
    }

    private string GetHash (string value)
    {
    using (var sha512 = System.Security. Cryptography.SHA512. Create())
    {
    return Convert.ToBase64String (sha512.ComputeHash (Encoding.UTF8. GetBytes (value)));
    }
    }


    ثبت Hash به این معنا است که با داشتن Hash نمی توانید بدونید که رمز عبور کاربر دقیقا چیه، نمی توانید به کاربر یا شخص دیگری بگید که رمز عبور اینه، اما می توانید چک کنید که آیا رمز عبوری که وارد می کنه درسته یا نه.

    private void button2_Click(object sender, EventArgs e)
    {
    if (GetHash (textBox1.Text).Equals (Properties.Settings .Default.username)
    && GetHash (textBox2.Text).Equals (Properties.Settings .Default.password))
    {
    MessageBox.Show ("Welcome.");
    }
    else
    {
    MessageBox.Show ("Username or password is incorrect.");
    }
    }


    رجوع شود به :
    مشكل با متد GetHashCode
    چرا باید پسورد را هش شده در دیتا بیس ذخیره کنیم؟




تاپیک های مشابه

  1. مبتدی: Application Setting Window
    نوشته شده توسط shahab2025 در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 22 آبان 1389, 23:30 عصر
  2. مشابه تابع save setting , get setting در سی شارپ چیست؟
    نوشته شده توسط aminking2002 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 20 تیر 1388, 11:07 صبح
  3. چطور میتونم محتویات یک application setting رو تغییر بدم ؟
    نوشته شده توسط amirepsilon در بخش C#‎‎
    پاسخ: 7
    آخرین پست: پنج شنبه 11 تیر 1388, 10:28 صبح
  4. مشکل با Application setting
    نوشته شده توسط amirepsilon در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 09 تیر 1388, 14:08 عصر
  5. سوال: تغییر Application Setting از طریق یک برنامه دیگر
    نوشته شده توسط regbyte در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 05 شهریور 1387, 18:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •