سلام
به نظر من هرچیزی رو باید به اندازاش خرج کرد! اگر قراره مثلا یه سایتی در حد یه سایت دانلود یا فاروم یا از این جور سایت ها کار کنه به نظر من یکی همین md5 بسشه! البته شکستن کد md5 به این راحتی ها هم که دوستان گفتن نیست و احتمال اون 0.0001 در هزار هست!
اما خوب یه وقت هم هست قراره شما مثلا سایتی مشابه پی پال راه بندازی که خوب هرچی امنیت رو ببری بالا چه تو کلمه عبور و ... کم کار کردی!
به نظر من اگر قرار هست از تو سایتی از امنیت بالا استفاده بشه به طوری که هیچ چیزی قابل فهم نباشه باید 2 کار حتما انجام شه!
1- استفاده از SSL
ssl میتنی بر یه سری الگوریتم های نامتقارن هست. مثل DES و RSA که اکثرا الگوریتم رو RSA انتخاب میکنن.
این الگوریتم ها به این صورت کار میکنن که دوتا کلید دارن یه خصوصی یه عمومی ! هر داده ای که با کلید خصوصی رمز شه با کلید عمومی از حالت رمز خارج میشه و بلعکس . پس شما کلید خصوصی رو برای خودت نگه میداری و کلید عمومی رو میدی به کاربر ( اکر سایتی که SSL داره رو اون قفل زرد رنگ پایینش کلیک کنید ( دوبار) اطلاعات کلید عمومی رو میده و قادرید گواهینامه تایید هویت رو نصب کنید) البته نیازی نیست چون خود مرورگر میفهمه چیکار کنه!
پس اطلاعات شما با توجه به کلید عمومی ای که کاربر داره میتونه باز شه بنابراین انتخاب مناسبی به تنهایی نیست. چون کاره این پروتکل برقراری ارتباط امن بین گیرنده اطلاعات و فرستنده هست! و عدم لو رفتن اطلاعات برای شخص ثالث نه سرویس گیرنده و سرویس دهنده!
2- استفاده از الگوریتم هایی مثل RSA به صورت جداگانه!
خوب گفتیم RSA دو تا کلید داره ( پیاده سازی الگوریتمش هم نسبتا سادست تو اینترنت هم ریخته) شما دوتا کلید با این الگوریتم درست میکنی و جفتش رو برا خودت تو یه سشن نگه میداری! حالا چیزهایی که نمیخوای لو بره با کلید خصوصیت میگیری و رمز میکنی!
موقع بازگشت هم اون دیتا رو با کلید عمومی از رمز خارج و کاری که میخوای رو انجام میدی!
الگوریتم RSA برای کار نیاز به 2 عدد اول داره که هرچی این اعداد بزرگتر باشن بهتره! استفاده از اعداد بزرگ کار رو برای هکر سخت میکنه!
اصلا بزارید الگوریت رو بگم:
سيستم رمز نگاري كليد عمومي RSA (RJVEST-SHAMIR-DLEMAN ):
به دليل برتري هاي بالقوه رمز نگاري كليد عمومي ،بسياري از پژوهشگران شروع به كار جدي براي اين منظور كردند والگو ريتم هاي جديدي پيشنهاد شد .يكي از اين الگو ريتم ها الگو ريتم RSA است كه در دانشگاه MIT و به وسيله ريوست شاميرووآدل من در سال 1978 اختراع شد . اين الگو ريتم مبتني بر اصولي از نظريه اعداد است وبه صورت زير بيان مي شود .
1)دو عدد اول بزرگ q.وp را انتخاب كن طوري كه هركدام بزرگتر 100^10 مي باشد
2) n=p.q وz=(p-1)(x-1) را محاسبه كن
3)يك عدد اول نسبت به z انتخاب ونام انرا d بگذار
4)e را طوري پيدا كن كه e.d=1mod z
با محاسبه اين پارامترها مي توان رمز نگاري را اغاز نمود .متن ساده كه به صورت رشته بيتي به ان نگاه مي شود .به بلوك هايي تقسيم مي شود به طوري كه هر پيغام متن ساده p دربازه .0<=p<=n بيافتد اين كار گروهبندي متن ساده به بلوك هاي k بيتي (Kبزرگترين عددي كه 2k<n )انجام مي شود براي رمز گذاري پيغام c=p^e(mod n),p محاسبه شده متن رمز شده c به دست مي ايد .براي رمزگشايي متن رمز شده, p=c^d(mod n) محاسبه شده ،متن ساده p استخراج مي شود .مي توان ثابت كرد كه براي همه p ها در محدوده مشخص تابع هاي رمز گذاري ورمز گشايي معكوس هم هستند.براي انجام رمز گذاري به e وn و براي رمز گشايي به d وn نياز است
------------------------------------------
خوب برای کرک این الگوریتم باید عواملشکسته بشن تا به اعداد اول برسیم و بتونیم کلید هارو بدست بیاریم!
نکته: در صورت استفاده از اعداد اول بالای 10 رقم با سریعترین کامپیوتر ها به چیزی در حدود 7 ماه زمان نیاز هست تا این الگوریتم شکسته شه!
خوب همونطور که گفتم کلید ها رو جفتش رو برای خودتون نگه دارید و کارهاتون رو بکنید بدون اینکه بترسید چیزی لو بره

( دوستان توجه کنید که امنیت خیلی چیز خوبیه اما 50% امنیت به نظر من یکی دست کاربر استفاده کننده است. مثلا کاربری که رو سیستمش کی ل.گر نصب شده باشه حالا شما بیا خودت رو بکش هزاربار md5 کن چه میدونم RSA استفاده کن از SSL استفاده کن 4 با از base64 استفاده کن همه این ها رو بیار DES کن ... اما چه سود که کلمه عبوری که نمیخواستی لو بره از همون اول لو رفته بود!

)
ولی در آخر به نظر شحصه بنده:
هر چیزی باید به جا استفاده شه برای ایجاد یک ارتباط امن استفاده از یه SSL در کارهای معمولی از سر سایت هم زیاده!
تازه ساتی که مثلا فروشگاه باشه والا یه سایت مثلا دانلود همینم نمیخواد!) البته نظر شخص من بود و نظر هر کس دیگه ای هم در جای خودش محترم