سلام
1- md5 الگوريتم هش كردنه و نه encryption ، پس نميشه md5 رو decrypt vn كرد .و فقط ميشه از collision در موردش استفاده كرد.
2-طول مقدار خروجي md5 ثابته (128 bit) به اين معني كه ورودي اوليه هر طولي كه داشته باشه به 128 ييت تبديل ميشه، نتيجه گيري ميشه كرد كه يك مقدار خروجي md5 مي تونه مربوط به چنرين مقدار ورودي باشه و رابطه يك به يك نيست.
3- md5 به خاطر ماهيتش نه public key داره و نه private key .البته طبيعيه چون كاملا الگوريتم hash هست و نه encryprtion
Md5اكاملا يك طرفه نيست(one way ) الگوريتم هاي salt يك طرفه هستند.
5- الگوريتم md5 از avalanche effect استفاده مي كنه به اين معني كه اگر تغيير كوچكي داخل سورس (اينپوت ) انجام بشه خروجي كاملا متفاوتي داريم و.لازمه بگم كه اين اثر يه صورت معكوس هم صادقه.
با در نظر گرفت 32digi بودن md5 اين اثر تاثير بسزايي داره.
اما اينكه md5 امكان برگشت داره يا نه شايد به فكرتون هم خطور نكنه ،گوگل در بعضي مواقع فوق العاده است. در موادي كه از يك مقدار به صورت md5 هش ميشه و با get ارسال ميشه ،گوگل اين متغيير هارو براي سياست هاي ذخيره و بازيابي خودش نگه مي داره. تايپ كردن مقدار هش شده در سرچ گوگل ممكنه نتيجه هاي جالبي به شما بده.
در كنار اين مي تونين از rainbow table ها هم استاده كنيد كه شايد شناخته شده ترين مشكل md5 باشه.