PDA

View Full Version : سوال: Md5



Taimaz_222
شنبه 04 آذر 1391, 23:41 عصر
سلام دوستان

بوسیله فرم رجیستر ، اطلاعات کاربران را در بانک ثبت می کنیم.

پسورد کاربر رو با تابع Md5 در جدول دیتابیس ذخیره کردیم

حال اگر کاربر پسورد خود رو فراموش کرد ، از سایت درخواست پسورد کرد چطور باید مقدار hash شده رو به حالت اولیه برگرداند و پسورد کاربر رو بازیابی کرد؟


با تشکر

MMSHFE
شنبه 04 آذر 1391, 23:57 عصر
با سلام، MD5 یک الگوریتم غیرقابل برگشته. باید یک عبارت خاص مثل 123456 یا یک عبارت تصادفی رو هش کنید و توی دیتابیس بگذارین و همون رو برای فرد ایمیل کنید یا نشونش بدین و ازش بخواین وقتی وارد شد، رمزش رو عوض کنه.

tux-world
یک شنبه 05 آذر 1391, 00:08 صبح
البته md5 رو میشه کرک کرد ولی خوب کار سختیه. به هر حال چیزی که آقای شهرکی گفتن به نظر من هم بهترین کار هستش

Taimaz_222
یک شنبه 05 آذر 1391, 00:20 صبح
ممنون از پاسخگویی دوستان.
تابع دیگری برای هش کردن وجود نداره که برخلاف md5 قابل برگشت باشه ؟

MMSHFE
یک شنبه 05 آذر 1391, 00:29 صبح
تابع که زیاده مثل base64 و... ولی روشهای غیرقابل برگشت امنیت بیشتری رو تأمین میکنن. البته میتونید موقع ساخت شناسه کاربری یا تغییر رمز، یک نسخه رمزگذاری نشده از رمز رو برای خودتون ایمیل کنید تا بعداً درصورت نیاز برای کاربر بفرستین. موفق باشید.

Taimaz_222
یک شنبه 05 آذر 1391, 00:30 صبح
با سلام، MD5 یک الگوریتم غیرقابل برگشته. باید یک عبارت خاص مثل 123456 یا یک عبارت تصادفی رو هش کنید و توی دیتابیس بگذارین و همون رو برای فرد ایمیل کنید یا نشونش بدین و ازش بخواین وقتی وارد شد، رمزش رو عوض کنه.

جناب شهرکی امکانش هست بیشتر توضیح بدید؟ فک می کنم خوب متوجه منظورتون نشدم!

به عنوان مثال کاربر من میاد در فیلد پسوردش عدد 50 رو وارد می کنه و من اینو از طریق md5 هش می کنمو مثلا میشه X . بعد از مدتی که کاربر پسوردشو فراموش می کنه پسوردش میشه همون مقدار هشی که در بانک ذخیره شده ؟ که باید در لاگین بعد بیادو یه پسوردی بده که مدنظرشه !

منظورتون همینه؟
بازم ممنون از پاسخگوییتون

MMSHFE
یک شنبه 05 آذر 1391, 00:39 صبح
دوست گرامی، فرض کنید کاربر رمزش یادش رفته. شما یکبار هش 123456 رو تولید میکنید که میشه e10adc3949ba59abbe56e057f20f883e
بعد هرموقع کاربر رمزش یادش رفت، توی دیتابیس رمزش رو e10adc3949ba59abbe56e057f20f883e میگذارین. در این حالت کاربر با رمز 123456 میتونه وارد بشه و بعد رمزش رو عوض کنه.

Fear Shadow
یک شنبه 05 آذر 1391, 14:49 عصر
سلام دوست عزیز میتونی برای برگردوندن عبارات از حالت هش شده که اینجا md5 مورد نظر از کرکر ها استفاده کنی که هم نرم افزار های تحت سیستم عامل دارند و هم تحت نت سایت هایی وجود دارند که این کار رو انجام میدن.که یکی از معروف ترین های اونها تو زمینه md5 سایت http://www.md5decrypter.co.uk/ هستش.

shahmohammadi
یک شنبه 05 آذر 1391, 15:08 عصر
سلام.
md5 امين ميشه 5E38CC5D98288D9097052C0E43050FAF
ولي اين سايت نتونست پيدا كنه.
amin و amin123456 رو تونست پيدا كنه. ولي amin247986 رو نتونست.

MMSHFE
یک شنبه 05 آذر 1391, 17:09 عصر
دوست عزیز این سایتها کامل نیستن. یک دیتابیس دارن که به مرور داره کامل میشه ولی همینها رو هم میشه نا امید کرد. کافیه چندبار هش کنید و با تکنیکهای مثل Salt و Pepper ضریب امنیت رو بالاتر ببرین. موفق باشید.

Taimaz_222
یک شنبه 05 آذر 1391, 18:48 عصر
سلام دوست عزیز میتونی برای برگردوندن عبارات از حالت هش شده که اینجا md5 مورد نظر از کرکر ها استفاده کنی که هم نرم افزار های تحت سیستم عامل دارند و هم تحت نت سایت هایی وجود دارند که این کار رو انجام میدن.که یکی از معروف ترین های اونها تو زمینه md5 سایت http://www.md5decrypter.co.uk/ هستش.
ممنونم دوست عزیز از سایتی که جهت بازیابی پسور هش شده معرفی کردید اما مشکل من اینه که می خوام بصورت خودکار این کار انجام بشه نه اینکه سایتی باز بشه و مقادیر وارد شه وسپس پسورد بازگردانی بشه. درواقع راهی باشه که کاربران سایت بتونند به سادگی به پسورداشون برسند.

Fear Shadow
یک شنبه 05 آذر 1391, 20:09 عصر
درود
قطعا این وبسایت ها کامل نیستن و یه دیتابیس دارن که به تدریج کامل میشه و همچنین این رو هم اضافه کنم که درسته سالت ها و پپر ها میتونن ضریب امنیت رو بالا ببرن ولی اونها هم قابل کرک هستن البته نه 100% ولی خب جزو روش های priv8 هستن.
و در جواب اون دوست عزیزمون که میگن هش شده ی عبارت "امین" میشه 5E38CC5D98288D9097052C0E43050FAF
این عبارت اگر هش از نوع md5 باشه چون 32 کارکتر داره پس یا باید از نوع md5 معمولی و یا md5(HMAC) باشه که در هر دوی اونها فقط اعداد و حروف کوچک وجود داره.(حالا شاید اینجا با حروف بزرگ نوشتید که اگه اینطور باشه . این کلمه در دیتابیس سایت نبوده ببخشید:لبخندساده:)
و همچنین این هم اضافه کنم که هش md5 عبارت amin برابر 30ae43ad1aa0a416699051b73a3dfcf6 هستش و هش عبارت امین هم برابر d39e6190c05017537241a1e38056e0dd هستش البته من خودم مقدار دیگه ای هم باری این عبارت پیدا کردم ولی هر دو دارای قوانین md5 هستند و اون عبارتی که شما داده بودید نبودند(کل این صحبت ها جنبه ی افزایش دانش داره ونه چیز دیگه ای).و برای شما هم من یادم هستش که یکی از دوستان چنین کاری کرده بود و بطور خودکار میشد که معادل هش رو برگردوند من حتما با ایشون تماس میگیرم و سریع بهتون میگم جواب رو.
بدرود

Taimaz_222
یک شنبه 05 آذر 1391, 20:39 عصر
بی نهایت ممنونم Fear Shadow (http://barnamenevis.org/member.php?271806-Fear-Shadow) عزیز

پس من منتظره جواب شما می مونم.امیدوارم که خوش خبر باشید :لبخندساده:

eshpilen
دوشنبه 06 آذر 1391, 11:28 صبح
عزیزم مزیت هش همینه که قابل بازگشت نیست. اونایی هم که کرک میشن بخاطر سه چیز میتونه باشه:

- عدم استفاده از روشهای هش امنیتی صحیح
- ضعیف بودن پسورد کاربر که نتیجتا هر روشی رو هم که برای هش کردن بکار برده باشید، بازم بوسیلهء Brute-force میشه اون رو کرک کرد
- استفاده از الگوریتم های سوراخ شده مثل MD5 و SHA1

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

شما یک رشتهء رندوم طولانی رو با همون md5 خالی هش کن ببین کدوم سایت میتونه برات اون هش رو کرک کنه. مثلا یک رشتهء رندوم متشکل از اعداد، حروف بزرگ، و حروف کوچک، به طول 22 کاراکتر. البته تابعی که باهاش رشتهء رندوم تولید میشه هم باید تابع رندوم از نوع امنیتی باشه.

علت اینکه امنیت ها اینقدر راحت شکسته میشن یک علتش اینه که تخصص امنیت و رمزنگاری واقعی رو هرکسی نداره و برنامه نویسهای معمولی بدون دانش و بینش تخصصی نهایت از خودشون روشهای من درآوردی اختراع میکنن.
علتش مهم دیگرش هم البته ضعیف بودن پسورد خود کاربره. مثلا پسوردی مثل love223 رو هرکاری بکنی هشش قابل کرکه.

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