我們一般以下面的形式儲存連接字串:
<appSettings>
<add key="ConnectionString" value="server=localhost;database=test;pwd=sa;uid=sa;" />
</appSettings>
現在,使用一個簡單的加密,其實是base64編碼而非加密。
private void Button1_Click(object sender, System.EventArgs e)
{
byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(this.TextBox1.Text);
string str = Convert.ToBase64String(data);
this.TextBox2.Text = str;
}
得到:c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7
之後,我們用這個字串替換未編碼的字串。如下所示:
<appSettings>
<add key="ConnectionString" value="c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7" />
</appSettings>
我們的程式需要理解這個字串的意義,我們在資料訪問層裡面添加如下的工具方法:
private string GetConnectionString()
{
string strconn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
byte[] data = Convert.FromBase64String(strconn);
string strRealConn = System.Text.ASCIIEncoding.ASCII.GetString(data);
return strRealConn;
}