PDA

View Full Version : سوال: md5



rash44
یک شنبه 10 مرداد 1389, 13:08 عصر
سلام
آیا md5 دیکد میشه ؟
من شنیدم که md5 دیکد نمیشه اما 1 هکر به راحتی از طریق 1 سایت کد رو دیکد کرد

binyaft
یک شنبه 10 مرداد 1389, 13:17 عصر
نه md5 دکد نمیشه
یعنی من هم نمیدونم برای چی
البته یه سری سایت هستند که کلمات و md5 اونها رو توی بانک اطلاعاتیشون ثبت میکنن
کلمات ساده ای مثل admin , username و....
خوب حالا اگه پسورد سایت کلمه ساده ای باشه راحت میشه هکش کردن البته با md5 ش
برای اینکه سایت از طریق md5 هک نشه باید پسورد رو بپیچونیم

parselearn
یک شنبه 10 مرداد 1389, 16:02 عصر
برنامه هويج چنين امكاني را داره
البته با توجه به توضيح دوستمون احتمال اين الگوريتم ساده هست.
http://www.itsecteam.com/en/projects/project1.htm

vahidmoghadam
دوشنبه 11 مرداد 1389, 00:31 صبح
دوستان عزيز md5 به راحتي ديكد ميشه

اگر در اينترنت جستجو كنيد (البته انگليسي) الگوريتم و مقاله هاي زيادي در مورد ديكد كردن md5 پيدا ميكنيد

ذخيره كردن انكد هاي رشته ها (درحقيقت md5 رشته ها) كاملا كاري غير منطقي و امكان ناپذير هست مگه ما يكي دو تا رشته ميتونيم بسازيم بينهايت رشته ميشه ساخت.

mohmadd
دوشنبه 11 مرداد 1389, 01:31 صبح
میتونی چند بار salt و چند بار sha1 , md5 بکنی.
به این تاپیک هم برید خوبه 'ایجاد یک Hash امن برای پسوردها '
http://barnamenevis.org/forum/showthread.php?t=233841\

rapidpich
دوشنبه 11 مرداد 1389, 08:24 صبح
ذخيره كردن انكد هاي رشته ها (درحقيقت md5 رشته ها) كاملا كاري غير منطقي و امكان ناپذير هست مگه ما يكي دو تا رشته ميتونيم بسازيم بينهايت رشته ميشه ساخت.
نه تعدادش محدوده
طول رشته Md5 32 تا هست
طول رشته Sha1 هم 40 تا هست

فکر میکنم md5 36 تا حالت کاراکتر داره پس تعدادش میشه
36 ^ 32
دلیل اینم که اون سایت تونست راحت در بیاره تعداد کم حرفهای رمز شما بود(مثلا زیر 10) یا لغتی بودن رمز بود.

milad89
دوشنبه 11 مرداد 1389, 11:48 صبح
این الگوریتم یک رشته با طول متفاوت را به عنوان ورودی می‌گیره و یک خلاصه پیام MD5 یا اثر انگشت با طول 128 بیت رو در خروجی ظاهر میکنه

در این روش اینکه دو پیام مختلف دارای یک خلاصه پیام باشند پیش مباد (علت اینه که چون پیام های کوتاه طول یکسان دارند پس تمامی کلمات مثلا 400 حرفی نمی‌توانند یک خلاصه منحصر بفرد داشته باشند چون تعداد پیام های کوتاه محدود به 2 بتوان طول خلاصه شده ها می‌باشد. اگر زمانی همه عبارات یک خلاصه مربوط به خود را بدست آورند که هرگز، در آن صورت شما می‌توانید اطلاعات یک هارد 80 گیگابایت را در یک فلاپی ذخیره کنید !!!) ولی اینکه یک رشته از روی یک خلاصه پیام ساخته شود غیر ممکن هست

تا حالا که در خدمتتون هستیم هیچ الگوریتمی برای دیکد کردن MD5 وجود نداره و به وجود نخواهد آمد اگه توضیحات بالا رو بخونید متوجه میشید چون MD5 خلاصه پیام هست

دوستمون در بالا گفتن میشه همچین کاری کرد ولی این غیر ممکنه چون اگه بشه MD5 رو دیکد کرد یعنی میشه کل اطلاعات هارد سرور های گوگل رو در 128 بیت ذخیره کرد :متعجب::قهقهه:

تنها راه برای دیکد کردن MD5 همانطور که اکثر سایت ها از این روش استفاده میکنند آزمون درست یا غلط هست که تنها برای کلمات کوچک کاربرد داره چون برای کلمات بزرگ احتمال بسیار زیاد میشه و از حوصله CPU های امروزی خارج هست

mozhganAhmadi
دوشنبه 29 شهریور 1389, 22:45 عصر
سلام
سوال برام پيش اومده كه چطور خروجی تابع md5 كه 32 كاراكتريه 128 بيته؟
ممنون ميشم اگر جوابم رو بديد.

mohmadd
سه شنبه 30 شهریور 1389, 02:40 صبح
سلام
سوال برام پيش اومده كه چطور خروجی تابع md5 كه 32 كاراكتريه 128 بيته؟
ممنون ميشم اگر جوابم رو بديد.
چون نوع خروجی hexdecimal است.
و بر مبنای 16 هستش .

eshpilen
سه شنبه 30 شهریور 1389, 09:25 صبح
اگر از روشهایی مثل salt به نحو مناسب استفاده کنید، هش شما تقریبا امن هست.
البته استفاده از MD5 دیگه خیلی وقته که در هیچ کاربردی توصیه نمیشه از نظر خبرگان امنیت؛ اما بهرحال هنوز هم بصورت وسیعی ازش استفاده میشه. حداقل در کاربردهایی مثل هش و جاهایی که امنیت بالا حیاتی نیست.
MD5 خیلی وقته از نظر امنیتی ضعف از خودش نشون داده و شکسته شده بحساب میاد.
بجاش باید از الگوریتم های جدیدتر (که معمولا طول هش بیشتری هم دارن) استفاده کرد.
ضمنا حتی SHA1 هم تاجایی که میدونم، جزو همین الگوریتم هایی هست که ضعیف تشخیص داده شدن و استفاده از اونا دیگه در هیچ کاربردی توصیه نمیشه.
بنظرم یه الگوریتم هایی مثل SHA256 باید جایگزین توصیه شده باشن (دقیق یادم نیست خودتون تحقیق کنید).
تاجایی که یادمه چنتا الگوریتم دیگه هم هستن.
در پی اچ پی هم با استفاده از mcrypt بود فکر میکنم، امکان استفاده از الگوریتمهای جدیدتر و قوی تر هست.

mozhganAhmadi
چهارشنبه 31 شهریور 1389, 22:38 عصر
چون نوع خروجی hexdecimal است.
و بر مبنای 16 هستش .
ممكنه كه كمي بيشتر توضيح بديد؟

eshpilen
پنج شنبه 01 مهر 1389, 09:44 صبح
خروجی باینری الگوریتم MD5 طولی برابر با ۱۲۸ بیت داره. ۱۲۸ بیت برابر ۱۶ بایت میشه. مقدار هر بایت رو اگر بخوایم در مبنای ۱۶ نشون بدیم نیاز به دو کاراکتر داریم. چون حداکثر مقدار قابل ذخیره توسط یک بایت در فرمت باینری که ۲۵۵ هست در فرمت متن و در مبنای ۱۶ با دو کاراکتر FF نشون داده میشه. بنابراین ما نیاز به ۲*۱۶ بایت داریم (چون هر کاراکتر ASCII یک بایت رو اشغال میکنه) تا مقدار خروجی MD5 رو بصورتی که بشر بتونه بخونه و روی صفحهء نمایش نشون داده بشه و از نوع متن ساده ASCII باشه، تبدیل کنیم. مزایای این شکل رو هم که گفتیم. البته بعضی جاها بعکس نیاز به فرمت باینری داریم، ولی در بیشتر جاها همون شکل متنی مورد نیاز یا قابل ترجیح یا قابل استفاده هست (به همین خاطر خروجی این تابع از نوع متنی هست).از PHP5 به بعد آپشنی وجود داره که میتونید به تابع MD5 بدید تا خروجی باینری تولید کنه.
برای نسخه های قدیمی تر PHP هم میشه از دو الگوریتمی که در این تاپیک آمده استفاده کرد:
http://forums.devshed.com/php-development-5/md5-function-with-binary-output-685095.html
الگوریتم اول رو خودم طراحی کردم ولی الگوریتم دوم که یک نفر دیگه بعد از چند بار اشتباه بالاخره صحیح و سالم تحویلش داد، کوتاهتر و خواناتر و بنابراین بهتره.