Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: [Thảo luận] Cách sửa, mã hóa App.config trong Winform C#?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    412

    Mặc định [Thảo luận] Cách sửa, mã hóa App.config trong Winform C#?

    Chào các bạn !
    Mấy hôm nay mò mẫm các diễn đàn thì mình cũng đã có cách sửa lại file App.config mà mã hóa nó như sau (các bạn xem file đính kèm nhé):
    Mình chưa build thành file setup nên chưa biết thế nào nhưng test Project thấy OK rồi, mong các bạn góp ý thêm.
    Lưu ý: code này mình sưu tầm và sửa lại chứ mình không viết toàn bộ nhé

    Visual C# Code:
    1.         //1. Mã hóa:
    2.         public string Encrypt(string toEncrypt, bool useHashing)
    3.         {
    4.             byte[] keyArray;
    5.             byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
    6.             if (useHashing)
    7.             {
    8.                 var hashmd5 = new MD5CryptoServiceProvider();
    9.                 keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes("hoidapit.com.vn"));
    10.             }
    11.             else keyArray = Encoding.UTF8.GetBytes("hoidapit.com.vn");
    12.             var tdes = new TripleDESCryptoServiceProvider
    13.                            {
    14.                                Key = keyArray,
    15.                                Mode = CipherMode.ECB,
    16.                                Padding = PaddingMode.PKCS7
    17.                            };
    18.             ICryptoTransform cTransform = tdes.CreateEncryptor();
    19.             byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    20.             return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    21.         }
    Visual C# Code:
    1.         //2. Giải mã:
    2.         public string Decrypt(string toDecrypt, bool useHashing)
    3.         {
    4.             byte[] keyArray;
    5.             byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
    6.             if (useHashing)
    7.             {
    8.                 var hashmd5 = new MD5CryptoServiceProvider();
    9.                 keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes("hoidapit.com.vn"));
    10.             }
    11.             else keyArray = Encoding.UTF8.GetBytes("hoidapit.com.vn");
    12.             var tdes = new TripleDESCryptoServiceProvider
    13.                            {
    14.                                Key = keyArray,
    15.                                Mode = CipherMode.ECB,
    16.                                Padding = PaddingMode.PKCS7
    17.                            };
    18.             ICryptoTransform cTransform = tdes.CreateDecryptor();
    19.             byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    20.             return Encoding.UTF8.GetString(resultArray);
    21.         }
    Button đọc thông tin từ file App.config
    Visual C# Code:
    1.         private void button1_Click(object sender, EventArgs e)
    2.         {
    3.             //Xóa các Textbox
    4.             txtServer.Clear();
    5.             txtDataBase.Clear();
    6.             txtUserID.Clear();
    7.             txtPassword.Clear();
    8.  
    9.             //Đọc dữ liệu từ file App.config vào các Textbox
    10.             txtServer.Text = ConfigurationManager.AppSettings["Server"].ToString();
    11.             string giaima_server = Decrypt(txtServer.Text, true);
    12.             txtServer.Text = giaima_server;
    13.  
    14.             txtDataBase.Text = ConfigurationManager.AppSettings["Database"].ToString();
    15.             string giaima_database = Decrypt(txtDataBase.Text, true);
    16.             txtDataBase.Text = giaima_database;
    17.  
    18.             txtUserID.Text = ConfigurationManager.AppSettings["Username"].ToString();
    19.             string giaima_UserID = Decrypt(txtUserID.Text, true);
    20.             txtUserID.Text = giaima_UserID;
    21.  
    22.             txtPassword.Text = ConfigurationManager.AppSettings["Password"].ToString();
    23.             string giaima_Pass = Decrypt(txtPassword.Text, true);
    24.             txtPassword.Text = giaima_Pass;
    25.            
    26.         }

    Button lưu thông tin vào file config
    Visual C# Code:
    1.         private void buttonUpdate_Click(object sender, EventArgs e)
    2.         {
    3.             Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    4.             config.AppSettings.Settings.Remove("server");
    5.             string mahoa_server = Encrypt(txtServer.Text, true);
    6.             config.AppSettings.Settings.Add("server",mahoa_server);
    7.            
    8.  
    9.             config.AppSettings.Settings.Remove("database");
    10.             string mahoa_data = Encrypt(txtDataBase.Text,true);
    11.             config.AppSettings.Settings.Add("database", mahoa_data);
    12.  
    13.             config.AppSettings.Settings.Remove("UserName");
    14.             string mahoa_UserID = Encrypt(txtUserID.Text,true);
    15.             config.AppSettings.Settings.Add("UserName", mahoa_UserID);
    16.  
    17.             config.AppSettings.Settings.Remove("PassWord");
    18.             string mahoa_Pass = Encrypt(txtPassword.Text,true);
    19.             config.AppSettings.Settings.Add("PassWord", mahoa_Pass);
    20.  
    21.             config.Save(ConfigurationSaveMode.Modified);
    22.             ConfigurationManager.RefreshSection("appSettings");
    23.             MessageBox.Show("update completed");
    24.            
    25.         }
    Attached Files Attached Files
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi thanlong_1189 : 25-11-2014 lúc 04:42 PM.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn