PDA

View Full Version : مشكل با متد GetHashCode



swallow.pa
جمعه 08 دی 1391, 20:44 عصر
با سلام
من يك متغير دارم مثلا بنام L كه بالفرض داراي عدد 2505 مي باشد
اونو با L.GetHashCode كد مي كنم و جايي ذخيره مي كنم كه مثلا مي شود -26504502
حالا وقتي بازيابي مي كنم حالا چطور رشته يا عدد رمز شده رو برگردونم به دشته يا عدد اصلي
توي اين قسمت موندم

SHD.NET
جمعه 08 دی 1391, 22:31 عصر
فک کنم دوباره با همون دستور بر می گردونش. امتحان کن ببین میشه

son89412138
شنبه 19 اسفند 1391, 13:10 عصر
تابع هش غيرقابل بازگشت هست يعني رشته اي روكدكردي ديگه نميتونه كدروتبديل به رشته كنه

the king
شنبه 19 اسفند 1391, 19:07 عصر
با سلام
من يك متغير دارم مثلا بنام L كه بالفرض داراي عدد 2505 مي باشد
اونو با L.GetHashCode كد مي كنم و جايي ذخيره مي كنم كه مثلا مي شود -26504502
حالا وقتي بازيابي مي كنم حالا چطور رشته يا عدد رمز شده رو برگردونم به دشته يا عدد اصلي
توي اين قسمت موندم

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

فرض کنید که شما رمز عبور کاربر رو بصورت Hash شده در بانک اطلاعاتی ذخیره می کنید. کسی که محتویات بانک اطلاعاتی رو می بینه
مقدار Hash شده رو می بینه اما چون قابل برگشت نیست، نمی تونه رمز عبور رو بدست بیاره. اما وقتی کاربر خواست لاگین کنه و
وارد محیط سیستم بشه، شما می توانید رمزی که کاربر تایپ می کنه رو Hash کنید و مقدار حاصل رو با اون مقدار داخل بانک اطلاعاتی
مقایسه کنید. اگر هر دو برابر بودند رمز عبور صحیح است وگرنه رمز اشتباه است.