+سئوال:: هش MD5 در VB.NET
با سلام و خسته نباشید...
کاراکتر "1" وارد شده
خروجی هر بار
1B2M2Y8AsgTpgAmY7PhCfg==
2iu9I2HkRim3Dk3gBSXrow==
EfAyW18tUFDUZEO4PGLL8w==
LxmRa3JrT5O9ZLYm5gsqtQ==
Imports System
Imports System.Security.Cryptography
Imports System.Text
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim m As MD5 = MD5.Create()
Dim hash As Byte() = m.ComputeHash(Encoding.Default.GetBytes(TextBox1.T ext))
TextBox1.Text = (Convert.ToBase64String(hash))
End Sub
End Class
نظری در موردش دارید بفرمایید ؟؟؟
نقل قول: +سئوال:: هش MD5 در VB.NET
قسمت جالبش اینجاست که اگه شما یه فایل متنی رو تبدیل کنید 24 کاراکتر میده و اگه 1 کاراکتر رو هم تبدیل کنید بازم 24 کاراکتر بهت میده.
عجبا
نقل قول: +سئوال:: هش MD5 در VB.NET
نقل قول:
نوشته شده توسط
mrg_vb
قسمت جالبش اینجاست که اگه شما یه فایل متنی رو تبدیل کنید 24 کاراکتر میده و اگه 1 کاراکتر رو هم تبدیل کنید بازم 24 کاراکتر بهت میده.
عجبا
Hash ئه MD5 همیشه 128 بیتی (16 بایتی) است، Base 64 هم هر 3 بایت رو در 4 کاراکتر کدی می کنه و همیشه طول اش مضربی از 4 ئه و اگر
کاراکتر کم بیاره با = تکمیل می کنه. اون 16 بایت رو در 22 کاراکتر کدی می کنه اما چون طول اش باید مضربی از 4 باشه دو کاراکتر = هم به طولش اضافه میشه.
نقل قول: +سئوال:: هش MD5 در VB.NET
حالا یه سئوال کوچیک من این رو برای رمز کردن پسورد حساب کاربری مورد نظر می خوام.
در هنگام ورود کاربر باید پسوردی که کاربر وارد می کنه رو تبدیل به هش بکنم و بعدش با پسوردی که در بانک تبدیل شده مقایسه کنم ؟
یا راه دیگه ای وجود داره ؟؟
راستی یه چیز دیگه این رمز نگار ها هم عجب جونورهایی که نیستن ؟؟:قهقهه:
موفق باشید.*
نقل قول: +سئوال:: هش MD5 در VB.NET
سلام
اگر پسورد به صورت MD5 درمیاد اونو نمی شه برگردوند ولی hash رو میشه .
برای MD5 باید پسورد قبلا به صورت م دی 5 در دیتابیس یا... وجود داشته باشه و پسورد دادشده با او یکی باشه.
هکر ها هم معمولا از سایتا یا دیتابیس های استفاده می کنند که میلیاردها پسورد MD5 دارند برای کرک کردن پسوردی که به دست آوردند.!
نقل قول: +سئوال:: هش MD5 در VB.NET
با سلام
نقل قول:
اگر پسورد به صورت MD5 درمیاد اونو نمی شه برگردوند ولی hash رو میشه .
لطفاً منبع رو ذکر کنین ! تا جایی که میدونم Hash رو نمیشه مهندسی معکوس کرد و عملیات برگشت پذیر نیست . البته این که میگم برگشت پذیر نیست این نیست هیچوقت نمیشه ! اما عمومیت نداره یعنی اینکه این الگوریتم ها جوری طراحی و پیاده سازی میشن که به صورت معمول به هیچ عنوان نمیشه رشته کد شده , رو به به حالت ابتدایی خودش برگردوند ! مگر استفاده از روش هایی که این روش ها دست دولتی هاست نه افراد عادی !
موفق باشید./
نقل قول: +سئوال:: هش MD5 در VB.NET
نقل قول:
لطفاً منبع رو ذکر کنین ! تا جایی که میدونم Hash رو نمیشه مهندسی معکوس کرد و عملیات برگشت پذیر نیست . البته این که میگم برگشت پذیر نیست این نیست هیچوقت نمیشه ! اما عمومیت نداره یعنی اینکه این الگوریتم ها جوری طراحی و پیاده سازی میشن که به صورت معمول به هیچ عنوان نمیشه رشته کد شده , رو به به حالت ابتدایی خودش برگردوند ! مگر استفاده از روش هایی که این روش ها دست دولتی هاست نه افراد عادی !
بر طبق نظرات و معلومات بنده.
اولا این الگوریتم بازگشت ناپذیر .
دوما این الگوریتم هر باری کدی که تولید میکنه و دفعه قبلش فرق میکنه و من شنیدم احتمال اینکه یه بار یه کاراکتر رو به یک صورت به کد تبدیل کنه خیلی کمه
حالا با فرض این دو تا که اگه درست باش:
چطور میشه که برابر بودن دو رمز تبدیل شده رو میفهمه یعنی رمزی که در بانک ذخیره شده با اون کاراکترهایی که کاربر وارد میکنه بعد تبدیل به کد میکنه این کد با اون کدی که در بانک ذخیره شده فرق میکنه که ؟؟؟؟؟؟؟
نقل قول: +سئوال:: هش MD5 در VB.NET
با سلامی دوباره !
نقل قول:
چطور میشه که برابر بودن دو رمز تبدیل شده رو میفهمه یعنی رمزی که در بانک ذخیره شده با اون کاراکترهایی که کاربر وارد میکنه بعد تبدیل به کد میکنه این کد با اون کدی که در بانک ذخیره شده فرق میکنه که ؟؟؟؟؟؟؟
لطفاً فکر دیتابیس رو از سرتون بیارین بیرون !!!!!!!!! الگوریتم MD5 یک نوع " هش " هستش و ربطی به دیتابیس نداره , درضمن برای اعتبارسنجی میان رشته مورد نظر رو در ابتدا هش میکنن و بعد با مقدار متناظر اون رشته که از قبل هش شده , مقایسه میکنن .
موفق باشید./
نقل قول: +سئوال:: هش MD5 در VB.NET
نقل قول:
و بعد با مقدار متناظر اون رشته که از قبل هش شده , مقایسه میکنن .
مقدار متناظر اون رشته که از قبل هش ده رو کجا می خوای قرار بدی ؟
من که گذاشتمش توی دیتابیس !
نقل قول:
ر ابتدا هش میکنن و بعد با مقدار متناظر اون رشته که از قبل هش شده , مقایسه میکنن .
بر اساس این جمله بنده :این الگوریتم هر باری کدی که تولید میکنه با دفعه قبلش فرق میکنه و من شنیدم احتمال اینکه یه بار یه کاراکتر رو به یک صورت به کد تبدیل کنه خیلی خیلی خیلی کمه
چطور مقایسه رو انجام میده ؟
با تشکر.*
نقل قول: +سئوال:: هش MD5 در VB.NET
با سلامی 3 باره !
دوست عزیز منظور بنده از بیخیال شدن دیتابیس ! در مورد خود الگوریتم بود یعنی اینکه این الگوریتم برای پیاده سازی اعتبارسنجی خودش کاری به دیتابیس شما نداره ! نه اینکه ما مقدار هش شده رو درکجا میخوایم ذخیره کنیم !
و اما برای اعتبارسنجی رشته ایی که بوسیله MD5 هش شده به راحتی میتونی از تابع زیر استفاده کنی :
Private Function CompareTwoBytes(ByVal tmphash As Byte(), ByVal tmpnewhash As Byte()) As Boolean
Dim bEqual As Boolean = False
If tmpnewhash.Length = tmphash.Length Then
Dim i As Integer
Do While (i < tmpnewhash.Length) AndAlso (tmpnewhash(i) = tmphash(i))
i += 1
Loop
If i = tmpnewhash.Length Then
bEqual = True
End If
End If
Return bEqual
End Function
موفق باشید./
نقل قول: +سئوال:: هش MD5 در VB.NET
نقل قول:
نوشته شده توسط
mrg_vb
بر طبق نظرات و معلومات بنده.
اولا این الگوریتم بازگشت ناپذیر .
دوما این الگوریتم هر باری کدی که تولید میکنه و دفعه قبلش فرق میکنه و من شنیدم احتمال اینکه یه بار یه کاراکتر رو به یک صورت به کد تبدیل کنه خیلی کمه
حالا با فرض این دو تا که اگه درست باش:
چطور میشه که برابر بودن دو رمز تبدیل شده رو میفهمه یعنی رمزی که در بانک ذخیره شده با اون کاراکترهایی که کاربر وارد میکنه بعد تبدیل به کد میکنه این کد با اون کدی که در بانک ذخیره شده فرق میکنه که ؟؟؟؟؟؟؟
نقل قول:
نوشته شده توسط
alimanam
با سلام
لطفاً منبع رو ذکر کنین ! تا جایی که میدونم Hash رو نمیشه مهندسی معکوس کرد و عملیات برگشت پذیر نیست . البته این که میگم برگشت پذیر نیست این نیست هیچوقت نمیشه ! اما عمومیت نداره یعنی اینکه این الگوریتم ها جوری طراحی و پیاده سازی میشن که به صورت معمول به هیچ عنوان نمیشه رشته کد شده , رو به به حالت ابتدایی خودش برگردوند ! مگر استفاده از روش هایی که این روش ها دست دولتی هاست نه افراد عادی !
موفق باشید./
اینکه بخواهید رمز های مختلف رو امتحان کنید تا به رمزی برسید که Hash شده اش با اون Hash مورد نظر مطابقت داشته باشه (Brute force) یک بحث
دیگه است که همیشه و در مورد همه Hash ها عملی است اما اونقدر زمان می بره که کلا به عنوان نقطه ضعف رویش حساب نمی کنند.
اما اولا Hash ای مثل MD5 کاری به زمان نداره و همیشه برای ورودی خاص باید خروجی مشخص و همیشه یکسان داشته باشه وگرنه اگر قرار بود
که هر بار برای اون داده ورودی ثابت یک خروجی جدید ایجاد کنه که دیگه میشه خروجی تصادفی و بدرد چک کردن صحت ورودی نمی خوره.
ثانیا از نظر عملی محاله که بشه از یک Hash با طول ثابت (مثلا MD5 طولش 16 بایتی است) به هر داده ورودی با طول بیشتر از اون رسید.
اینکه میگم محاله نظر من یا نتیجه تحقیقات تجربی و ... نیست، از نظر علم ریاضی غیر ممکنه، چون اگر ممکن بود فرضا همین MD5 قوی ترین
تکنیک فشرده سازی دنیا بود که می توانست 1000000000 ترابایت داده رو در 16 بایت فشرده کنه و بعد شما از اون 16 بایت به
اون 1000000000 تربایت داده اولیه برسید، چنین چیزی ممکنه؟ معلومه که ممکن نیست چون نمیشه که برای اون همه حالت های مختلف
داده ورودی یک Hash یکتا رو فقط در 16 بایت بوجود آورد. تعداد حالت هایی که با 16 بایت میشه بوجود آورد قابل مقایسه با تعداد حالت های
یک داده 17 بایتی هم نیست چه برسه به 1000000000 ترابایتی.
نقل قول: +سئوال:: هش MD5 در VB.NET
نقل قول:
مگر استفاده از روش هایی که این روش ها دست دولتی هاست نه افراد عادی
عجب دولتی های قدرتمندی!!!
پس اینا که این همه قدرت دارم اگه از یه فایل یک گیگی ، MD5 بگیرم می تونن برش گردونن دیگه؟
نگید نه که ناراحت می شن!
نقل قول:
اما اولا Hash ای مثل MD5 کاری به زمان نداره و همیشه برای ورودی خاص باید خروجی مشخص و همیشه یکسان داشته باشه
منم موافقم
نقل قول: +سئوال:: هش MD5 در VB.NET
با سلام
عجب دولتی های قدرتمندی!!!
ظاهراً شک داری که هر الگوریتم شناخته شده ایی یه حفره به اندازه توپ فوتبال توش هست اما کسایی که میتونین این توپ من نداشتم بابام بهم ... !!! داد رو ببینن باید خیلی با حال تر از منو شما باشن ! :قهقهه: آخه وقتی به راحتی آب خوردن گواهینامه های دیجیتال رو کپی برداری میکنن شما داری با من از چه چیزی صحبت میکنی ؟؟؟!!!! هش و رمزنگاری واسه من و شما و خیلی خیلی های دیگه غیرقابل نفوذه نه واسه صاحبان قدرت و پول .
نقل قول:
پس اینا که این همه قدرت دارم اگه از یه فایل یک گیگی ، MD5 بگیرم می تونن برش گردونن دیگه؟
ببین عزیزم , من زیاد ذهنمو درگیر این موضوع نمیکنم که بتونن یا نتونن ! قسمت مهمشو تو خط بالا خدمتتون عرض کردم .
من که شدیداً موافقم .
موفق باشید ./
نقل قول: +سئوال:: هش MD5 در VB.NET
دوستان عزیز روش هش کردن روشی نیست که اگر یک گیگ رو بهش بدین یک کد 24 کاراکتری مثلا بهتون بده
بلکه این اعداد تکرار میشوند مثلا به شما یک برنامه بدن که با اون میتونین فقط خروجی 1 و 2(عدد تولید شده دو رقمی باشد) را داشته باشید
حالا اگر 4 تا عدد 1 و 2 و3 و4و5و6و7و8 رو بهش بدیم نتیجه ها تکرار میشوند
1=11
2=22
3=12
4=21
5=11
6=22
7=12
8=21
خوب حالا دلیل این که ما این دیدگاه برامون پیش میاد اینه که این پارامتر (که به تازگی چند شرکت در روس توانسته اند ان را دوباره برگردانند) برای ما برگشت ناپذیره و چون نمیتونیم نتیجه های برگشت خورده رو ببینیم این دیدگاه برامون پیش میاد
مگرنه اگر اینطور بود برنامه های مثل winrar برشکست میشدند چون یک نفر یک گیگ اطلاعات رو تبدیل میکرد به حداکثر 100 کاراکتر و این یعنی تبدیل یک گیگ به یک کیلوبایت که در علم کامپیوتر این حرف یک حرف بی ارزش حساب میشود
دوستان در مورد هر چیز باید فکر کرد
موفق باشید