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

نام تاپیک: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    Question نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    با سلام من راستش سرچ کردم ولی فقط تونستم متد هش کردن رو پیدا بکنم من میخوام یک رشته رو که هش کردم باز بیام ببینم آیا رشته جدید با هش شده یکی هست یا نه؟ چطور این مقایسه رو انجام بدم

    public string GetMD5Hash(string input)
    {
    MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
    byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
    bs = x.ComputeHash(bs);
    StringBuilder s = new StringBuilder();
    foreach (byte b in bs)
    {
    s.Append(b.ToString("x2").ToLower());
    }
    string password = s.ToString();
    return password;
    }
    ضمنا این متد رو خوب درک نکردم این "x2" اینجا یعنی چی

  2. #2

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    نقل قول نوشته شده توسط esafb52 مشاهده تاپیک
    با سلام من راستش سرچ کردم ولی فقط تونستم متد هش کردن رو پیدا بکنم من میخوام یک رشته رو که هش کردم باز بیام ببینم آیا رشته جدید با هش شده یکی هست یا نه؟ چطور این مقایسه رو انجام بدم

    public string GetMD5Hash(string input)
    {
    MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
    byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
    bs = x.ComputeHash(bs);
    StringBuilder s = new StringBuilder();
    foreach (byte b in bs)
    {
    s.Append(b.ToString("x2").ToLower());
    }
    string password = s.ToString();
    return password;
    }
    ضمنا این متد رو خوب درک نکردم این "x2" اینجا یعنی چی
    ورودی توابع Hash یک آرایه ای از بایت ها است، پس اون بخش (System.Text.Encoding.UTF8.GetBytes(input برای تبدیل کردن رشته ورودی به آرایه ای از بایت ها
    اجباری یه و در همه نمونه های Hash کردن هست. اما خروجی Hash که خودش یک ارایه ای از بایت ها است رو میشه به شیوه های مختلفی بکار برد.
    معمولا به رشته تبدیل اش می کنند تا با یک عملگر == بشه بسادگی با یک نمونه دیگه مقایسه اش کرد اما به هر حال اجباری نیست.
    برای تبدیل کردن خروجی Hash که خودش آرایه ای از بایت ها است به یک رشته، در این مثال از یک حلقه و ("ToString("x2 استفاده شده.
    x بایت های این آرایه رو بصورت یک عدد مبنای 16 (هگزادسیمال) تبدیل می کنه و x2 تضمین می کنه که هر عدد دو رقمی باشه، یعنی فرضا بجای 4 بشه 04

    حالا شما یک نمونه قبلی از این GetMD5Hash رو قبلا برای ورودی اصلی (مثلا رمز عبور) اجرا کرده اید و یک رشته بدست آورده اید و در بانک اطلاعاتی ثبت اش کرده اید.
    وقتی کاربر رمز عبور رو موقع Login کردن وارد کرد، مجددا با GetMD5Hash اون رو به یک رشته تبدیل می کنید. این رشته رو با اون رشته ای که در بانک اطلاعاتی ثبت شده
    مقایسه خواهید کرد (if (a == b که اگر برابر بودند رمز عبور صحیح است وگرنه اشتباه است. همین.

    شخصا بجای تبدیل بایت ها به دو رقمی های مبنای 16 از Base64 استفاده می کنم :

    using System;
    using System.Text;
    using System.Security.Cryptography;

    public string GetMD5Hash(string input)
    {
    byte[] bytes = Encoding.Unicode.GetBytes(input);
    return Convert.ToBase64String(HashAlgorithm.Create("MD5") .ComputeHash(bytes));
    }

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    کنار یه ساحل خیلی زیبا
    پست
    922

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    توضيحات عالي بود فقط نحوه مقايسه اش رو كاش با يك نمونه كد نشون ميدادي عالي تر بود .
    ممنون

  4. #4
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

      //این قطعه کد را عینا اجرا کنید
    private void button1_Click(object sender, EventArgs e)
    {string a="amir";
    textBox1.Text = Encrypt.EncryptString(a);//این خط استرینگ امیر را اینکریپت میکند
    //63eefbd45d89e8c91f24b69f7539942
    if (Encrypt.DecryptString(a, "63eefbd45d89e8c91f24b69f7539942"))
    {
    int i = 1 + 1;//
    //MessageBox.Show("ok");
    }
    else
    {
    int c = 1 + 5; //MessageBox.Show("error");
    }
    //این ایف برای این است که آیا استرینگ انکریپت شده (امیر)با انکریپت
    // 63eefbd45d89e8c91f24b69f7539942
    //برابر است
    //اگراسترینگ (امیر ) باشد
    //مقدار ترو واگر استرینگ (احمد) باشد مقدار فالس بر میگر داند
    // textBox1.Text = Encrypt.DecryptText(a, "63eefbd45d89e8c91f24b69f7539942");
    //این خط نام امیر را بر می گرداند
    //اگر استرینگ دیگری رابدهید پیغام خطا میدهد

    // امیر x2=63eefbd45d89e8c91f24b69f7539942
    //امیر x3=0630ee0fb0d405d0890e80c901f0240b60090f705309904 2
    //ایکس 3 اینکریپت بیشتری انجام میدهد در نتیجه حافظه بیشتری اشغال می کند
    //دیفالت ایکس 2 است
    }




    کلاس انکریپت
    تابع اول انکریپت میکند
    دوم برای برسی صحت انکریپت با استرینگ
    سوم استرینگ انکریپت شده را بر می گر داند
    آخرین ویرایش به وسیله alexmcse : شنبه 03 فروردین 1392 در 19:04 عصر

  5. #5
    کاربر دائمی آواتار rezarko
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    شیراز
    سن
    26
    پست
    635

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    ممنون. چه طور میشه استرینگ انکریپت شده رو برگردونیم به اولش؟
    آخرین ویرایش به وسیله rezarko : جمعه 02 فروردین 1392 در 20:33 عصر

  6. #6
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    از توابع بالا استفاده کردم
    نقل قول نوشته شده توسط rezarko مشاهده تاپیک
    ممنون. چه طور میشه استرینگ انکریپت شده رو برگردونیم به اولش؟
     public string DecryptText(string text, string hash)
    {
    if (Encrypt.verifyMd5Hash(text, hash))
    return text;
    else
    return "خطا";
    }

  7. #7
    کاربر دائمی آواتار rezarko
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    شیراز
    سن
    26
    پست
    635

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    به ورودی text چی باید بدیم؟

  8. #8
    کاربر دائمی آواتار rezarko
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    شیراز
    سن
    26
    پست
    635

    نقل قول: نحوه مقایسه یک رشته هش شده با الگوریتم md5و مقایسه صحت آن

    لطفا یه مثال بزنید

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

  1. پاسخ: 10
    آخرین پست: دوشنبه 06 آذر 1391, 14:18 عصر
  2. فشرده سازی رشته رمز نگاری شده توسط الگوریتم هافمن
    نوشته شده توسط negar.rafie در بخش C#‎‎
    پاسخ: 19
    آخرین پست: سه شنبه 28 شهریور 1391, 22:24 عصر
  3. مقایسه تاریخی که بصورت رشته ذخیره شده
    نوشته شده توسط nima_dir در بخش گزارش سازی با Crystal Report
    پاسخ: 3
    آخرین پست: دوشنبه 07 بهمن 1387, 12:48 عصر
  4. مقایسه دو رشته
    نوشته شده توسط قیوم در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: یک شنبه 15 خرداد 1384, 13:24 عصر
  5. نحوه تبدیل یک رشته به فرمان قابل اجرا در برنامه دلفی
    نوشته شده توسط masood1350 در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: یک شنبه 02 اسفند 1383, 16:18 عصر

برچسب های این تاپیک

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

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