PDA

View Full Version : نحوه Crypte و DeCrypte کردن با متد هاي Net.



shahnam sha
دوشنبه 16 آذر 1388, 15:41 عصر
سلام خدمت دوستان عزيز
من مي خوام با متد هاي دات نت يک string کد و دي کد کنم اگه در اين زمينه تجربه اي داريد لطفا راهنمايي کنيد.
از لطف شما متشکرم.

mehdi.mousavi
دوشنبه 16 آذر 1388, 16:02 عصر
سلام خدمت دوستان عزيز من مي خوام با متد هاي دات نت يک string کد و دي کد کنم اگه در اين زمينه تجربه اي داريد لطفا راهنمايي کنيد.
از لطف شما متشکرم.

سلام.
بستگی داره این string چی باشه و قرار باشه کجا ازش استفاده بشه:


اگر هدفتون محافظت از این string هنگام کارکردن با اون در حافظه (و بطور کلی runtime) هستش، میتونید از کلاس SecureString استفاده کنید تا به محظ اینکه کارتون با این string تموم شد، .net framework اونو از حافظه پاک کنه و اثری از اون در حافظه نمونه.
اگر قرار این string یک password باشه، بهتره اونو hash کنید (البته بشرطیکه با salt value ترکیبش کنید) و سپس hash شده این string رو نگهدارید. اینطوری مطمئن هستید که کسی نمیتونه کلمات عبور رو برگردونه.
اگر قراره این string بهدف ارسال روی اینترنت (یا اینترانت) Encrypt بشه، باید از SSL و دیگر پروتکلهای موجود (مثل TLS) در این زمینه سود ببرید. البته اگر در اینترانت قراره این اتفاق بیفته، من kerbros و certification های مربوطه رو پیشنهاد میکنم (البته بازهم به شرایط بستگی داره!)
در نهایت، (اگر خیلی ساده انگارانه بخوام نگاه کنم) میرسیم به symmetric/ asymmetric .encryption methods در این روشها با استفاده از الگوریتمهای موجود میتونید داده ای رو Encrypt کرده (بوسیله secret key) و اونو Decrypt کنید. بسته به نوع استفاده میتونید یکی از این دو روش رو انتخاب کنید.

خلاصه کنم، این مهمه که این string چی هستش و قراره چه کاری تو چه محیطی باهاش انجام بشه. برای شروع می تونید به System.Security Namespace در MSDN مراجعه کنید.

موفق باشید.

AliRezaPro
دوشنبه 16 آذر 1388, 16:06 عصر
به این آرتیکل ها نگاه کنید

http://www.codeproject.com/KB/cs/Cryptography.aspx

http://www.codeproject.com/KB/security/DotNetCrypto.aspx

shahnam sha
سه شنبه 17 آذر 1388, 08:37 صبح
متشکرم دوستان که انقدر جواب هاي کاربردي و موارد به درد به خور در اختيار مي گذاريد من يک فايل xml دارم که به صورت resource اونو داخل برنامه اضافه کردم فقط مي خوام براي امنيت و جلوگيري از نمايش آن هنگام باز شدن با Reflector اونو کد کنم باز هم از راهنمايي شما متشکرم.

mehdi.mousavi
سه شنبه 17 آذر 1388, 12:29 عصر
متشکرم دوستان که انقدر جواب هاي کاربردي و موارد به درد به خور در اختيار مي گذاريد من يک فايل xml دارم که به صورت resource اونو داخل برنامه اضافه کردم فقط مي خوام براي امنيت و جلوگيري از نمايش آن هنگام باز شدن با Reflector اونو کد کنم باز هم از راهنمايي شما متشکرم.

آهان! این اصلا شد یک چیز دیگه (درست همونطور که میشد حدس زد!). اینکار با Encrypt/Decrypt کردن یک string متفاوته. برای این منظور، ابتدا یک قدم به عقب برگردید و به این سوالات پاسخ بدید:


این فایل XML حاوی چه اطلاعاتی هستش؟
آیا بهترین جایگاه نگهداری این اطلاعات، درون برنامه هستش؟
اگر اطلاعات محرمانه ای هستش، پس چرا باید اصلا خودم درون برنامه خودم قرار بدم و این اطلاعات رو دست مشتری بدم؟
قراره از این XML چه استفاده ای بشه؟

موفق باشید.

shahnam sha
سه شنبه 17 آذر 1388, 12:38 عصر
اين فايل xml که داخل برنامه گذاشتم حاوي اطلاعاتي هست که کاربر از اون اطلاعات مربوط به برنامه رو جستجو مي کنه و من براي اينکه نياز به برنامه جانبي نباشه اطلاعات براي جستجو رو تو فايل xml گذاشتم.

mehdi.mousavi
سه شنبه 17 آذر 1388, 13:06 عصر
اين فايل xml که داخل برنامه گذاشتم حاوي اطلاعاتي هست که کاربر از اون اطلاعات مربوط به برنامه رو جستجو مي کنه و من براي اينکه نياز به برنامه جانبي نباشه اطلاعات براي جستجو رو تو فايل xml گذاشتم.

متوجه نمیشم! یعنی این فایل XML بانک اطلاعاتی برنامه شما هستش؟

shahnam sha
سه شنبه 17 آذر 1388, 15:48 عصر
بله اين فايل xml بانک اطلاعاتي من هست چون من مي خوام موقع نصب برنامه رو client از DB خاصي استفاده نکنم و با اين فايل کار جستجو را انجام بدم.

mehdi.mousavi
سه شنبه 17 آذر 1388, 16:02 عصر
بله اين فايل xml بانک اطلاعاتي من هست چون من مي خوام موقع نصب برنامه رو client از DB خاصي استفاده نکنم و با اين فايل کار جستجو را انجام بدم.

این روش صحیحی برای انجام این کار نیست. بخصوص اگر تعداد رکوردها زیاد باشه، XML Parser مایکروسافت به زانو در میاد... در هر حال، اگر میخواهید برنامه رو زیاد تغییر ندید، میتونید از ابزارهای Obfuscation استفاده کنید. در همین سایت، بدنبال obfuscation بگردید تا به پاسخ سوالتون برسید.

shahnam sha
چهارشنبه 18 آذر 1388, 09:03 صبح
ممنون از پاسخ تون آيا obfuscation فايل xml داخل برنامه رو کد ميکنه ؟ چون dotfocuster company edition اين کار رو نمي کنه.