编码SqlConnection字符串信息的最佳方法

时间:2013-08-06 12:22:02

标签: c# sql sql-server winforms encoding

您好我的代码下面有reads Sqlconnection string个信息。但问题是我按原样存储了这些信息。没有编码所以在我看来这样做是非常不安全的。有没有办法encode然后解码?哈希呢?非常感谢您的时间和意见。

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 个答案:

答案 0 :(得分:1)

是的,您可以加密连接字符串。受保护的配置模型允许您使用两个受保护的配置提供程序加密数据。他们是:

RSAProtectedConfigurationProvider:这是默认提供程序,使用RSA公钥加密算法加密和解密数据。

DataProtectionConfigurationProvider:此提供程序使用Windows数据保护应用程序编程接口(DPAPI)来加密和解密数据。

您可以查看here,了解它是如何完成的。