سلام
بلاخره پس از تحقیق و مطالعه نظرات بچه ها من به این نتیجه رسیدم که Encrypt/Decrypt اطلاعات مهم میتونه خیلی سود مند باشه.در این مورد هر یک از بچه ها روش ها ی را مد نظر داشتند که در نوع خودش جالب بود .با توجه به اینکه اطلاعاتی که من در setting برنامه ذخیره میکردم و بسیار حیاتی بود و چه بسا دسترسی به این اطلاعت میتونست خرابکاری های جبران ناپذیری را به اطلاعات سازمان و داده ها وارد کنه به این فکر افتادم که قسمتی از اطلاعات مهم را به صورت رمز شده در بیارم.
من از لینک زیر برای رمز کردن رمز عبور و نام کاربری اتصال به سرور استفاده کردم
http://www.codeproject.com/useritems..._File_Data.asp
اما در مورد این لینک:این لینک شامل برنامه ای هست که میتونه اطلاعات یک متن یا یک فایل را Encrypt/Decrypt ( رمز کردن/رمز گشایی )کنه. به عنوان مثال شما رشته "ALI" را می خواهید رمز کنید این رشته را در قسمت تکست مورد نظر مینویسید و علاوه بر این رشته نیاز به یک Secret key دارید که فرض کنید 828 باشه وقتی متن را با این کلید رمز میکنید خروجی به شکل cBhT6j7/C7dWGdrrFg4Wzg== در می آید . مشاهده میکنید که طول متن رمز شده کوتاه هست ( برای من مزیت میباشد! ) و با توجه به کلید هم میتوان گفت که از این نوع رمز نگاری از امنیت نسبی خوبی ( در حد ابتدایی نه حرفه ای ) برخوردار هست و باعث میشه که اگر کسی بخواد به اطلاعات دسترسی داشته باشه برای بدست اوردن اطلاعات و یا نفوذ به برنامه به زحمت بیفته.به نظر من برای شروع میتونه خوب باشه و از روش های ابتدای روتیت حروف و جابجایی مفید و کاراتر هست.برای استفاده از این روش ابتدا به لینک بالا رجوع کنید و سپس پس از دانلود سورس برنامه فایل EncryptDecrypt.cs که در این برنامه استفاده شده را به برنامه یا برنامه های که میخواید از این روش استفاده کنید اضافه کنید و لازم به ذکر هست که هنگام اضافه کردن این فایل به برنامه خود
namespace EncryptDecrypt باید به " نام برنامه" namespace تغییر کند.
پس از اضافه کردن این فایل به برنام خود حال میتونید از این روش استفاده کنید.
به عناون مثال:
این تابعی هست که من برای کانت شدن به سرور در برنامه هام بکار برده ام و هرجا که نیاز بود به سرور کانکت شوم از این تابع استفاده میکنم ( بیشتر هنگام لود شدن فرم برنامه این تابع را فراخوانی میکنم.)
privatevoid LoginToServer()
{
string pass = "";
string UserName = "";
try
{
MOJAVEZ.MyEncryptor enc = new MOJAVEZ.MyEncryptor("282");
pass = enc.Decrypt(MOJAVEZ.Properties.Settings.Default.PassWord);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
MOJAVEZ.MyEncryptor enc = new MOJAVEZ.MyEncryptor("828");
UserName = enc.Decrypt(MOJAVEZ.Properties.Settings.Default.UserName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
string ConnectionString = "";
ConnectionString = "Data Source=" + MOJAVEZ.Properties.Settings.Default.DataSource + ";Initial Catalog=" + MOJAVEZ.Properties.Settings.Default.DataBase + ";User Id=" + UserName + ";Password=" + pass + ";";
objConnection = newSqlConnection(ConnectionString);
}
و این هم محتویات setting و config برنامه هست
<?xmlversion="1.0"encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroupname="userSettings"type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<sectionname="MOJAVEZ.Properties.Settings"type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"allowExeDefinition="MachineToLocalUser"requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<MOJAVEZ.Properties.Settings>
<settingname="moji"serializeAs="String">
<value>False</value>
</setting>
<settingname="nfp_admin"serializeAs="String">
<value>----------</value>
</setting>
<settingname="control"serializeAs="String">
<value>1234</value>
</setting>
<settingname="date"serializeAs="String">
<value />
</setting>
<settingname="nfp_masuol"serializeAs="String">
<value>----------</value>
</setting>
<settingname="nfp_sarshift"serializeAs="String">
<value>----------</value>
</setting>
<settingname="nfp_modir"serializeAs="String">
<value>----------</value>
</setting>
<settingname="DataSource"serializeAs="String">
<value>sql_server</value>
</setting>
<settingname="DataBase"serializeAs="String">
<value>mojavez</value>
</setting>
<settingname="UserName"serializeAs="String">
<value>SNBEJcZpF58RJuJYJTLPew==</value>
</setting>
<settingname="PassWord"serializeAs="String">
<value>/n/OGVgdHHr1faoyoC3Auw==</value>
</setting>
</MOJAVEZ.Properties.Settings>
</userSettings>
</configuration>
همانطور که مشاهده میکنید قسمتی از اطلاعات ( که برای من مهم تلقی میشود ) به صورت رمز شده در آمده
که در داخل برنامه رمز گشایی میشودخوب حال با توجه به این مطالب شما میتونید بگید
که من از چه username , password برای کانکت شدن به سرور استفاده میکنم!!!؟