اینکه بخواهید رمز های مختلف رو امتحان کنید تا به رمزی برسید که Hash شده اش با اون Hash مورد نظر مطابقت داشته باشه (Brute force) یک بحث
دیگه است که همیشه و در مورد همه Hash ها عملی است اما اونقدر زمان می بره که کلا به عنوان نقطه ضعف رویش حساب نمی کنند.
اما اولا Hash ای مثل MD5 کاری به زمان نداره و همیشه برای ورودی خاص باید خروجی مشخص و همیشه یکسان داشته باشه وگرنه اگر قرار بود
که هر بار برای اون داده ورودی ثابت یک خروجی جدید ایجاد کنه که دیگه میشه خروجی تصادفی و بدرد چک کردن صحت ورودی نمی خوره.
ثانیا از نظر عملی محاله که بشه از یک Hash با طول ثابت (مثلا MD5 طولش 16 بایتی است) به هر داده ورودی با طول بیشتر از اون رسید.
اینکه میگم محاله نظر من یا نتیجه تحقیقات تجربی و ... نیست، از نظر علم ریاضی غیر ممکنه، چون اگر ممکن بود فرضا همین MD5 قوی ترین
تکنیک فشرده سازی دنیا بود که می توانست 1000000000 ترابایت داده رو در 16 بایت فشرده کنه و بعد شما از اون 16 بایت به
اون 1000000000 تربایت داده اولیه برسید، چنین چیزی ممکنه؟ معلومه که ممکن نیست چون نمیشه که برای اون همه حالت های مختلف
داده ورودی یک Hash یکتا رو فقط در 16 بایت بوجود آورد. تعداد حالت هایی که با 16 بایت میشه بوجود آورد قابل مقایسه با تعداد حالت های
یک داده 17 بایتی هم نیست چه برسه به 1000000000 ترابایتی.