PDA

View Full Version : پیاده سازی الگوریتم AES یا RSA دربرنامه تحت شبکه (کلاینت /سرور) به زبان سی شارپ



hadis shaeidi
چهارشنبه 02 آذر 1390, 12:49 عصر
من یه محیطی تقریباشبیه مسنجرطراحی کردم که شامل2برنامه سروروکلاینت هستش حالامیخوام روامنیتش کارکنم که داده هابصورت امن منتقل شوند(ارسال ودریافت پیام.فایل و..)چطوری الگوریتم های رمزنگاری روپیاده سازی کنم.من درvs2008کارمیکنم

mehdi.mousavi
چهارشنبه 02 آذر 1390, 13:18 عصر
من یه محیطی تقریباشبیه مسنجرطراحی کردم که شامل2برنامه سروروکلاینت هستش حالامیخوام روامنیتش کارکنم که داده هابصورت امن منتقل شوند(ارسال ودریافت پیام.فایل و..)چطوری الگوریتم های رمزنگاری روپیاده سازی کنم.من درvs2008کارمیکنم

سلام.
ابتدا بگم امنیت چیزی نیست که در انتهای یک پروژه نرم افزاری به سیستم اضافه بشه! من بارها به این مساله در این سایت اشاره کرده ام... احتمالا برنامه شما Port ای رو باز میکنه و شروع به ارسال و دریافت اطلاعات میکنه... درسته؟ در صورتیکه برای برنامه های IM، پروتکلهای استانداردی (http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols) تدوین شده، تا بر اساس اون قراردادها، اطلاعات بین Client و Server رد و بدل بشه. فرضا در Jabber (که امروزه اونو به اسم XMPP می شناسن)، شما میتونید بر اساس TLA یا SASL ایمنی اطلاعات ارسالی و دریافتی رو تضمین کنید.

در هر حال، شما الگوریتم های رمزنگاری رو پیاده سازی نمی کنید، اون الگوریتم ها پیاده سازی شده اند و شما از اونها استفاده می کنید. بطور نمونه، برای کار با Triple DES می تونید بدین شکل عمل کنید (http://buchananweb.co.uk/security07.aspx).

موفق باشید.

hadis shaeidi
پنج شنبه 03 آذر 1390, 11:30 صبح
سلام شمادرست فرمودیدبرنامه من پورتی روبازمیکنه وسپس شروع به ارسال ودریافت میکنه.
ممنونم ازپاسخ خوبتون.

hadis shaeidi
دوشنبه 07 آذر 1390, 20:43 عصر
باسلام
من این لینک رودیدم وتستش کردم خوب بودولی یه سوال ازتون داشتم؟
تواین برنامه کلیدرمزاین"m65hhhgfd"هستش که هرکس کلیدروداشته باشه میتونه رمزنگاری ورمزگشایی کنه.حالامن نمیدونم این کلیدوازکجابدست آورده وطرف مقابل چطوربدونه کلیدرو که عمل رمزنگاری ورمزگشایی روانجام بده؟لطفا دراین موردبهم توضیح بدید؟

hadis shaeidi
دوشنبه 07 آذر 1390, 21:38 عصر
ببخشیدباش کارکردم فهمیدم که فقط اون کلیدرمزبالانیست که نوشتم هرکلیدی که 9یابیشتراز9تاکاراکترباشه میتونه به عنوان کلیدباشه.وعمل رمزنگاری ورمزگشایی صورت میگیره

hadis shaeidi
دوشنبه 07 آذر 1390, 21:47 عصر
حالااگه بخوام توبرنامه تحت شبکم بزارمش بایددرمبدا که پیام فرستاده میشه بااینکلیدرمزش کنم .حالادرمقصدچیکارکنم یعنی اونی که میخوادپیامودریافت کنه بایداین کلیدوبدونه؟

hadis shaeidi
دوشنبه 07 آذر 1390, 23:15 عصر
ببخشیدمیشه همون لینکی که بهم گفتیدروخودتونم نگاهی بندازید من میخوام رمزکردن ورمزگشایی ازهم جداباشه برااینکه تستش کنم یعنی داخل2کنترل باتون(دکمه)جداگانه.حالااین ارروکردم رمزنگاری رودرست انجام میده ولی رمزگشایی روخطامیده :
ICryptoTransform decryptor = threedes.CreateDecryptor(key, IV);
MemoryStream msDecrypt = new MemoryStream(encrypted);
CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);
this.tbDecrypt.Text = ByteToString(csDecrypt);
حالاتوهمین خطی که سبزرنگ هستش (دومین خط کد)من میخوام مثلامتن رمزشده که داخل تکس باکس هست رورمزگشایی کنه که منظورم تواین برنامه tbencrypt.textهست چطوری به جای encryptedکدخط دوم بنویسم هرجورمینوسیم خطامیده یااجرامیشه ولی عمل رمزگشاییوانجام نمیده؟

mzolfaghari71
جمعه 14 شهریور 1393, 11:53 صبح
سلام بچه ها من چطور میتونم گزارش تحویل رو تو برنامه تحت وب طراحی کنم یه پروژه چت بین کلاینت ها و سرور با wcf نوشتم ارتباط بین کلاینت و سرور هارو برقرار میکنه ولی گزارش تحویل واسه تایید ارسال داده ها نداره