PDA

نسخه کامل مشاهده نسخه کامل : سوالی در مورد gethashcode



HOJ-JAT
18-04-2015, 21:36
سلام
اگر کد mystring.gethashcode رو بزنم یک عدد ب من میده
سوالم اینجاست که این کد همیشه واسه رشته یکسانه؟؟
و کلا کار این کد چیه؟

_H2_
18-04-2015, 23:22
سلام
بطور کلی الگوریتم های Hash ، برای ورودی یکسان همواره پاسخ یکسان میدهند و پاسخ آنها یک طرفه است یعنی نمیتوان از آنها به دیتای اولیه رسید و نیز شاید برای دو دیتای متفاوت هش یکسان تولید شود.
مانند CRC, MD5, SHA1, SHA256 و... و...

کدهای هش کاربردهای متعددی دارند از جمله:
جهت تضمین صحت انتقال اطلاعات، جهت جستجوی سریع باکمک جداول هش، رمزنگاری و امنیت و...



این کد همیشه واسه رشته یکسانه؟؟

در یک اجرا و تحت یک AppDomain بطور قطع یکسان خواهد بود ولی نه بیشتر.

متد GetHashCode صرفاً مناسب کاربردهای درون نرم افزاری مانند همان جداول هش است.
متاسفانه بعضاً دیده میشود، دوستان از این متد جهت رمزنگاری گذرواژه استفاده میشود که عمل صحیحی نیست و باید از الگوریتم های استاندارد مانند SHA1, SHA256, SHA384 و... استفاده کرد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

HOJ-JAT
18-04-2015, 23:30
ممنونم
من میخوام سریال مادر بورد را برای عملایاتی تبدیل ب کد عددی کنم از چ روش برای تبدیل ب عدد استفاده کنم؟
میخوام نرم افزار یک کدی تصادفی که ترکیبی از سریال سی پی یو و مین بورد هست رو ب کاربر بده و کاربر اون رو ب من بده و من اون کد را رمز گشایی کنم ....
الان همه مراحلش حله بجز همین موصوع چگونگی تبدیل رشته به عدد و مهم ترین قسمتش ثابت بودنشه مثلا همیشه جمله hello یک کد بده

_H2_
18-04-2015, 23:57
سلام
اگر بخواهیم خیلی ساده کنیم، میتوانید از MD5 استفاده کنید، خروجی آن همواره و برای هر تعداد ورودی ، ثابت و برابر 16 بایت خواهد بود که اگر به hex تبدیل شود، همواره 32 حرف خواهد شد.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته برای محکم کاری و اگر مانند من وسواس پردازش متون و برابری متون و... را دارید و دیوانه محکم کاری هستید(!) شاید بهتر است sn1,2,3 قبل از استفاده تمیز شوند، مثلاً فاصله و خط تیره و نقطه و... بطور کل حذف شوند و فقط محتوای متنی عددی باقی بماند... تا خدایی ناکرده در سیستم عاملهای متفاوت یک space ناقابل مشکل ساز نشود!
موفق باشید.