PDA

View Full Version : MD5 Decryption



yaqubian
جمعه 07 تیر 1387, 12:13 عصر
سلام دوستان
بد نیست سری به این آدرس بزنید
http://qte.dk/articles/miscellaneous/md5decryption/
لینک php رو هم یه نیگاه بندازین مطالبش بد نیست
موفق باشید

Bahram0110
جمعه 07 تیر 1387, 12:53 عصر
سلام
اصولا متن هش شده با md5 قابل بازيابي نيست
اين سايت ها هم كه ادعا مي كنن‎ md5 رو ديكريپت مي كنن در واقع اين كار رو با ديكشنري انجام مي دن يعني ميان يه سري اعداد و كلمات كه عمومي تر هستن رو با md5 هش مي كنن و مي ريزن تو بانك... سپس مقايسه انجام مي دن
به همين خاطره كه بايد رمز عبور رو از تركيب اعداد، حروف و علامات انتخاب كرد

Bahram0110
جمعه 07 تیر 1387, 19:35 عصر
يك نكته ديگه در همين رابطه:
اگه برنامه نويس وب هستين (كه هستين) فقط به


md5($password);

تكيه نكنيد
مي تونيد از تركيب الگوريتم ها و همچنين هش كردن رمز با توجه به نام كاربري (براي يكسان نبودن هش شده ي رمز كاربران در بانك حتي اگه رمز هاشون يكسان باشه و همچنين عدم توانايي هكر! در تغيير رمز بصورت دستي) استفاده كنيد

smile17
جمعه 07 تیر 1387, 19:45 عصر
md5 واقعا قوي و سريع هستش مخصوصا اگه salt بشه يا به صورت

md5(md5($pass))
بشه و ذخيره بشه كار كرك كردن هم خيلي مشكل ميشه....بعضي از md5 cracker هايي كه من ديدم پسوردهايي با طول بيش از 16 كاراكتر رو نمي تونست كرك كنه
يعني اگه طول پسورد شما از از 16 كاراكتر بيشتر بشه و بعد به كمك md5 به صورت decypt در بياد خيلي از كراكرا نا توان هستند
البته كراك پسوردهاي كوچك هم در روش brute force عمر نوح مي خواد

دوستان اگه مايل هستيد در اين تاپيك به صورت تخصصي روي روش هاي رمزنگاري و كراكينگ بحث كنيم

Bahram0110
شنبه 08 تیر 1387, 00:29 صبح
6‏ كاراكتر هم كه باشه حدس زدنش كار حضرت فيله


يعني اگه طول پسورد شما از از 16 كاراكتر بيشتر بشه و بعد به كمك md5 به صورت decypt در بياد خيلي از كراكرا نا توان هستند

مي شه بيشتر توضيح بدين؟‏!‏

yaqubian
شنبه 08 تیر 1387, 15:59 عصر
دوستان عزیز من هم با نظر ccx عزیز در این رابطه موافقم
یکی از مشکلاتی که ما در گرفتن پروژه های دولتی داریم اینه که امنیت را تا چه حدودی تضمین می کنید؟ فکر می کنم بد نباشه در مورد روشهای امنیتی یه مقدار اینجا بحث بشه.
مرسی موفق باشید

vahid4134
دوشنبه 10 تیر 1387, 10:45 صبح
يعني اگه طول پسورد شما از از 16 كاراكتر بيشتر بشه و بعد به كمك md5 به صورت decypt در بياد خيلي از كراكرا نا توان هستند
البته كراك پسوردهاي كوچك هم در روش brute force عمر نوح مي خواد

دوستان اگه مايل هستيد در اين تاپيك به صورت تخصصي روي روش هاي رمزنگاري و كراكينگ بحث كنيم

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

دوستان عزیز من هم با نظر ccx عزیز در این رابطه موافقم
یکی از مشکلاتی که ما در گرفتن پروژه های دولتی داریم اینه که امنیت را تا چه حدودی تضمین می کنید؟ فکر می کنم بد نباشه در مورد روشهای امنیتی یه مقدار اینجا بحث بشه.
مرسی موفق باشید
در مورد مسائل امنیتی که بحث به یک تاپیک نیست و مقوله های زیادی رو باید مد نظر داشت.
به نظر من امنیت در چند سطح انجام میشه. یکیش در سطح مرورگر (که زیاد به برنامه نویس ربطی نداره مگر در موارد جزئی)
دیگری در وب سرور . انتخاب وب سرور مناسب و تنظیمات بهتر وب سرور در امنیت بسیار تاثیرگذار هست
دیگری در سطح پایگاه داده که باز هم به تنظیمات صحیح بر می گرده.
آخرش هم به روش صحیح برنامه نویسی و آشنایی با روشهای نفوذ به سایتها
در مورد رمزنگاری هم همیشه باید بسته به امنیتی که مورد نیاز هست از روشهای تکی یا روشهای مختلط استفاده کرد.
همیشه یک نکته رو باید مد نظر داشت و اون این هست که نباید یک هکر با اولین نگاه بفهمه که روش انکریپت از کدوم الگوریتم استفاده شده. استفاده همزمان از md5 و sha1 که روشهای غیر قابل بازگشت هستند روش موثری هستند.
کنترل ورودی کاربران مبنی بر اینکه از اعداد خالی یا حروف خالی و کلماتی که ممکن است در کتابخانه های md5 یا sha1 وجود داشته باشد هم راه دیگری برای این مبارزه هست.
در آخر هم استفاده از روشهایی که کد رو بر مبنای یک انکریپت و دیکریپت (یا استفاده از الگوریتم های قابل بازگشت مانند blowfish یا با استفاده از الگوریتم های ساده که از خلاقیت برنامه نویس سرچشمه بگیره) رو میشه از بهترین کارها در این جهت نام برد

Bahram0110
دوشنبه 10 تیر 1387, 11:04 صبح
در آخر هم استفاده از روشهایی که کد رو بر مبنای یک انکریپت و دیکریپت (یا استفاده از الگوریتم های قابل بازگشت مانند blowfish یا با استفاده از الگوریتم های ساده که از خلاقیت برنامه نویس سرچشمه بگیره) رو میشه از بهترین کارها در این جهت نام برد
سلام
این قسمتو متوجه نشدم
می شه بیشتر توضیح بدین؟

vahid4134
دوشنبه 10 تیر 1387, 11:19 صبح
الگوریتم های قابل بازگشت مثل blowfish که نیاز به یک کلید دارند (یعنی یک کلید رو به عنوان کلید رمزنگاری می گیرند) روشهای بسیار موثری در انکریپت کردن هستند. جالبی این الگوریتم ها این هست که بدون داشتن کلید رمزنگاری انکریپت کاری بسیار بسیار بسیار بسیار مشکلی هست. از طرف دیگه این الگوهای رمز نگاری بر روی هر سرور جوابهای متفاوتی رو میده. که باید به این نکته همیشه توجه داشت

Bahram0110
دوشنبه 10 تیر 1387, 11:31 صبح
به نظرتون برای این کار همون MD5 یا SHA1 بهتر نیست؟
بالاخره هرچی باشه اونا یک طرفه هستن

smile17
دوشنبه 10 تیر 1387, 17:44 عصر
با سالم خدمت دوستان
عذر مي خوام دير پاسخ مي دهم
به طور مثال نرم افزار قوي cain كه من در كرك كردن بعضي پسورد ها ازش استفاده مي كنم ، توانايي كرك كردن پسوردهايي كه داراي طول بيش از 32 كاراكتر باشد را ندارد
همين طور كه تو اين عكس مشاهده مي كنيد حداكثر طول پسوردي كه كراك مي شود 32 كاراكتر است
اگر شما مثلا 33 تا 1 را هش كنيد(يك رشته كخ 33 تا 1 دارد) و بعد بخواييد به روش brute force اون رو كرك كنيد و كراكر cain رو هم طوري تنظيم كنين كه همه ي حالات 1 رو بررسي كند...اين كراكر اصلا نمي تواند چنين پسوردي را كرك كند
http://i32.tinypic.com/28qpw1s.jpg

smile17
دوشنبه 10 تیر 1387, 18:01 عصر
معرفي سيستم هاي رمز نگاري متقارن و نامتقارن + كمي از طرز كار آن ها
دانلود (http://rapidshare.com/files/126078894/PH_Cryptosystem.zip.html)

vahid4134
سه شنبه 11 تیر 1387, 11:09 صبح
به نظرتون برای این کار همون MD5 یا SHA1 بهتر نیست؟
بالاخره هرچی باشه اونا یک طرفه هستن

بنده هم عرض نکردم که اینها خوب نیستند. اگر پست قبلی من رو بخونید تاکید کردم که الگوریتمی مثل blowfish بر روی هر سیستم یک جواب رو میده. بنابراین نمیشه یک رشته رو blowfish کرد بعد داخل دیتابیس ذخیره کرد (چون اگر بخوایید انتقال بدید دیگه رمز عبور ها صحیح نیست) . اما شما فرض کنید می خواهید رمز عبور رو برای مدتی در یک جایی ذخیره کنید. مثلا در کوکلی یا در session اون وقت استفاده از این الگوریتم ها بسیار موثر هست

smile17
سه شنبه 11 تیر 1387, 12:18 عصر
بنابراین نمیشه یک رشته رو blowfish کرد بعد داخل دیتابیس ذخیره کرد (چون اگر بخوایید انتقال بدید دیگه رمز عبور ها صحیح نیست) . اما شما فرض کنید می خواهید رمز عبور رو برای مدتی در یک جایی ذخیره کنید. مثلا در کوکلی یا در session اون وقت استفاده از این الگوریتم ها بسیار موثر هست

در اين مورد حق با vahid4134 (http://barnamenevis.org/forum/member.php?u=28668) است

abizaki
شنبه 22 خرداد 1389, 10:38 صبح
بابا MD5 دیگه قدیمی شده. من زوش One Time Pad رو پیشنهاد می کنم که جدید ترین روش رمز نگاری به نام کوانتومی هم از اون سر چشمه گرفته. البته روش کوانتومی شکست خورد اگه می خواین بدونین چطوری به من پیام بدین. اما این روش امن تره.
این روش رو من در کتاب شبکه های کامپیوتری نوشته ی آقای اندرو اس تنن بام گرفتم:
این روش از دو بخش رشته ی اصلی و کلید رمز (password) تشکیل شده. که به هیچ وجه بدون رمز باز نمی شه. حتما باید رمز به طور کامل در دست باشه.
شیوه ی کار به این صورته که باید متن اصلی رو با رمز XOR کنیم. یعنی اول کاراکتر به کاراکتر هر دو رشته رو جدا می کنیم و بعد همه ی کاراکتر ها رو به کد اسکی تبدیل می کنیم. حالا همه ی کد های اسکی رو به مبنای دو می بریم. بعد تک تک کاراکتر های رمز رو با تک تک کاراکتر های رشته ی اصلی xor می کنیم. حالا همه ی اعداد به دست آمده از حاصل کار رو به مبنای 10 می بریم و با توابع موجود آن را به کاراکتر تبدیل می کنیم. این طوری متن به رمز در میاد. برای باز گرداندن رشته ی اصلی هم کافیست تا مراحل بالا را برعکس طی کنیم:

رشته در مبنای 2 00011010 11101100 11100011
رمز در مبنای 2 11011101 11111111 10001110
xor

من برای ساختن تابعی که این کارو بکنه یه مشکل دارم اونم اینه که چطور عدد در مبنای 2 رو به 10 و برعکس ببرم فقط تابع یا الگوریتمشو به من بگین. نمی دونم چطور روش تقسیم های متوالیرو پیاده کنم.
من 13 سالمه و تازه دو ساله که برنامه نویسی می کنم. اگه می شه کمک کنین.

rapidpich
یک شنبه 23 خرداد 1389, 14:18 عصر
همين طور كه تو اين عكس مشاهده مي كنيد حداكثر طول پسوردي كه كراك مي شود 32 كاراكتر است

چونکه فرقی نداره. یعنی تکرار میشه.طول md5 دقیقا 32 کاراکتر هست.
یعنی



md5(1) == md5(132*0);

منظورم از 32*0 32 تا صفر هست.

یا مثلا رمز windows 14 حرف هست(فکر میکنم عدد دقیقشو یادم نیست) ولی برای همین شما اگه یه رمز 15 حرفی بگذارید مثل اینه که یک رمز 1 حرفی گذاشتید (البته باز هم به همین گلابی نیست جستجو کنید
NTLM vs LM ،، ویندوز به صورت اتوماتیک در صورت نیاز یک salt 7 رقمی اضافه میکنه)
برای همین شما در Decrypt کردن md5 ممکنه به رمز اولیه نرسید ولی به یک رمز میرسید که این رمز قفل رو باز میکنه



بابا MD5 دیگه قدیمی شده. من زوش One Time Pad رو پیشنهاد می کنم که جدید ترین روش رمز نگاری به نام کوانتومی هم از اون سر چشمه گرفته
من این روش رو نشنیدم و جایی هم نخوندم اما شما به هر حال باید اطلاعات مربوط به رمز رو تو دیتابیس بگذارید و هرکار که بکنید یا برگشت پذیره یا brute force میشه. ممکنه پردازشش سنگینتر باشه اما بالاخره میشه.

md5 الان گسترده ترین روش رمز گذاریه. هر وقت سیستمهایی مثل vb joomla drupal رفتن سراغ یک روش جدید خوب ما هم میریم!

rapidpich
یک شنبه 23 خرداد 1389, 14:19 عصر
ما شما فرض کنید می خواهید رمز عبور رو برای مدتی در یک جایی ذخیره کنید. مثلا در کوکلی یا در session اون وقت استفاده از این الگوریتم ها بسیار موثر هستهیچ وقت هیچ وقت هیچ وقت هیچ وقت خود رمز رو جایی ذخیره نکنید! مخصوصا تو کوکی.
باز هش رمز رو چرا ولی خودشو هرگز

abizaki
یک شنبه 23 خرداد 1389, 15:02 عصر
چونکه فرقی نداره. یعنی تکرار میشه.طول md5 دقیقا 32 کاراکتر هست.
یعنی



md5(1) == md5(132*0);

منظورم از 32*0 32 تا صفر هست.

یا مثلا رمز windows 14 حرف هست(فکر میکنم عدد دقیقشو یادم نیست) ولی برای همین شما اگه یه رمز 15 حرفی بگذارید مثل اینه که یک رمز 1 حرفی گذاشتید (البته باز هم به همین گلابی نیست جستجو کنید
NTLM vs LM ،، ویندوز به صورت اتوماتیک در صورت نیاز یک salt 7 رقمی اضافه میکنه)
برای همین شما در Decrypt کردن md5 ممکنه به رمز اولیه نرسید ولی به یک رمز میرسید که این رمز قفل رو باز میکنه

من این روش رو نشنیدم و جایی هم نخوندم اما شما به هر حال باید اطلاعات مربوط به رمز رو تو دیتابیس بگذارید و هرکار که بکنید یا برگشت پذیره یا brute force میشه. ممکنه پردازشش سنگینتر باشه اما بالاخره میشه.

md5 الان گسترده ترین روش رمز گذاریه. هر وقت سیستمهایی مثل vb joomla drupal رفتن سراغ یک روش جدید خوب ما هم میریم!



ببخشید یه سوال داشتم. brute force یعنی چی؟
بعدش هم شما اول یک بار این روش رو آزمایش کنین و بعد به هر کی می خواین بدین تا رمزرو براتون بشکنه. عمرا نمی تونه. اگه دو عدد رو با هم xor کنین، برای برگردوندن عدد اصلی، باید دو باره عدد رمز شده رو با خود رمز xor کنید که متن اصلی به دست بیاد. اگه And یا Or یا دیگر عملگرهای منطقی رو می گفتم به سادگی قابل شکستن بود. اما با xor نمی شه این کار رو کرد. خصوصا اگه کاراکتر های رمز دارای کد اسکی در مبنای 10 با تعداد ارقام متفاوت باشند.مثلا از کد اسکی یک رقمی تا سه رقمی. در مورد MD5 زیاد بحث شده. حالا کمی هم در مورد این روش بحث کنیم.

rapidpich
دوشنبه 24 خرداد 1389, 00:03 صبح
brute force یعنی تک تک رمز هارو امتحان کنیم.
1,2,3,4,...
و خوب همیشه جواب میده دیگه حتی با فرمول شما

BEHESHT*
دوشنبه 24 خرداد 1389, 18:33 عصر
brute force یا B-Force یعنی آزمون و خطا کار بسیار ساده هست منتهی اگه تعداد کارتور ها پایین باشه و یا این که حروف ها خیلی تابلو مثل اعداد باشن

MD5 , SHA حالا مقدار SHA »هم نیست برگشت پذیر نیستند به هیچ عنوان و اگر طول بیشتر بشه مقدار زمن طولانی تر و اگر از کارتور های خاص مثل: # $ % ^ [] + = ~ /l " ' <> ! ?

استفاده بشه سرعت رو خیلی کند می کنه طبق تخمینی که زدند اگر علامت ! و ~ در یک پسورد 8 رقمی وجود داشته باشه پیدا کردن اون رو تا 10 سال به طعبیق می ندازه

و سایت ها کرک آنلاین MD5 زیاد هستند که همهشون با دیتا بیس کار می کنن و پسوورد های بازگشه قبل رو دارند

و اما استفاده از sha در محیط وب یه کم خنده دار به نظر میرسه من خوددم برنامه نویس دلفی هستم و از یه SHA-512 تو محیط برنامه نویسی ویندوز استفاده نکردم برای وب اصلا جالب نیست

بهتره پسورد اول مجبور به طولانی وبدن از طرف وب مستر شه بعد به علاوه یه عبارت ثابت بشه که حتی هر ماه این عبارت عوض شه با الگوریتم های انکود در وب مثل base64 و بعد MD5 گرفته بشه

اینجوری خیلی بهتره

موفق باشید

abizaki
سه شنبه 25 خرداد 1389, 08:29 صبح
brute force یعنی تک تک رمز هارو امتحان کنیم.
1,2,3,4,...
و خوب همیشه جواب میده دیگه حتی با فرمول شما

راستی روش MD5 چطوریه؟ توابعش چطوری کار می کنن؟

BEHESHT*
سه شنبه 25 خرداد 1389, 14:45 عصر
با ی جسجوی کوچیک تئ گوگل به راحتی به جواب می رسید:

http://oxygenws.com/blog/archives/17-MD5.html