2013-08-06 57 views
0

您好,我在此下面輸入了reads Sqlconnection string信息。但問題是我保存了這些信息。沒有編碼所以在我看來這是非常不安全的。有沒有辦法encode它,然後解碼?或哈希?非常感謝您的時間和意見。編碼SqlConnection字符串信息的最佳方式

internal static class DataSource 
    { 
     private static string _ConnectionString; 
     public static string ConnectionString 
     { 
      get 
      { 
       if (_ConnectionString == null) 
        _ConnectionString = FunctionToDynamicallyCreateConnectionstring(); 
       return _ConnectionString; 
      } 
     } 
     private static string FunctionToDynamicallyCreateConnectionstring() 
     { 
      string path = "C:\\Users\\marek\\Documents\\Visual Studio 2012\\Projects\\tours\\tours\\sql_string.txt"; 
      StreamReader sr = new StreamReader(File.Open(path, FileMode.Open)); 

      SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder(); 

      cb.DataSource = sr.ReadLine(); 
      cb.InitialCatalog = sr.ReadLine(); 
      cb.UserID = sr.ReadLine(); 
      cb.Password = sr.ReadLine(); 

      return cb.ToString(); 
     } 
    } 

這是我如何保存它:

string path = "C:\\Users\\marek\\Documents\\Visual Studio 2012\\Projects\\tours\\tours\\sql_string.txt"; 

      StreamWriter sw = new StreamWriter(File.Create(path)); 
      sw.WriteLine(textBox1.Text); 
      sw.WriteLine(textBox2.Text); 
      sw.WriteLine(textBox3.Text); 
      sw.WriteLine(textBox4.Text); 


      sw.Dispose(); 

也許這甚至不是做的很好的方式。如果我的想法完全不好,我是初級程序員,所以請原諒。

+1

連接字符串是:只是一個字符串。存儲它的最簡單的方法是:*作爲字符串* - 例如'File.WriteAllText',或者作爲配置文件中的設置。你提到「不安全」;你想要保護什麼?人們瀏覽文件是你關心的事情嗎?在這種情況下:您使用的是什麼類型的安全性?信任/ SSPI?或sql服務器密碼? –

+1

也看到計算器 http://stackoverflow.com/questions/42115/app-config-connection-string-protection-error – lordkain

+0

@MarcGravell謝謝您的時間,我想,如果有人打開此.txt文件在那裏我存儲有關初始目錄,數據源,ID,密碼的數據,他可以簡單地訪問這個SQL數據庫,是不是這樣?我還沒有使用任何類型的安全性,你會向我推薦什麼?再次感謝你的時間。 – Marek

回答

1

是的,你可以加密連接字符串。受保護的配置模型允許您使用兩個受保護的配置提供程序來加密數據。它們是:

RSAProtectedConfigurationProvider:這是默認提供程序,它使用RSA公鑰加密算法來加密和解密數據。

DataProtectionConfigurationProvider:此提供程序使用Windows數據保護應用程序編程接口(DPAPI)來加密和解密數據。

你可以看看here看看它是如何完成的。

+0

很高興再次見到你Ehsan。你認爲這也適用於.txt文件嗎?因爲我正在使用它來讀取SqlConnection字符串。感謝您的時間。 – Marek

+0

@Marek不,它不會。它適用於web.config/app.config。儘管你可以爲txt文件寫一個非常相似的文件 – Ehsan

相關問題