encryptionSQL连接stringc#
我创build了一个连接到sql 2005服务器的c#应用程序(而不是asp网页)。 在我的源代码中,这个sql-server的密码和用户标识在ConnectionString中被编码为纯文本。
SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=server1;"+ "Initial Catalog=mydatabase;"+ "Integrated Security=no;"+ "User ID=admin;Password=mypassword;"; con.Open();
有一个简单的方法来encryption密码或整个连接string,其他人谁反汇编我的工具无法看到密码?
谢谢
您应该将连接string存储在configuration文件中并encryption该部分。 请参阅http://www.4guysfromrolla.com/articles/021506-1.aspx或http://msdn.microsoft.com/en-us/library/89211k9b%28VS.80%29.aspx 。
有两种方法可以做到这一点:
1)您可以使用configuration安全部分来encryption和解密源代码中的连接:
try { // Open the configuration file and retrieve // the connectionStrings section. Configuration config = ConfigurationManager. OpenExeConfiguration(exeConfigName); ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection; if (section.SectionInformation.IsProtected) { // Remove encryption. section.SectionInformation.UnprotectSection(); } else { // Encrypt the section. section.SectionInformation.ProtectSection( "DataProtectionConfigurationProvider"); } // Save the current configuration. config.Save(); Console.WriteLine("Protected={0}", section.SectionInformation.IsProtected); } catch (Exception ex) { Console.WriteLine(ex.Message); }
2)您可以使用企业库数据访问应用程序块来使用RSAProtectedConfigurationProvider或DPAPIProtectedConfigurationProvider执行encryption。
对于一个完整的关键转到 – > http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx
不,你只能使它变得困难
让应用程序使用特殊的数据库login只能访问必要的表/程序更好。
您可以像web.config一样encryption app.config中的部分 。 MS将其称为受保护的configuration 。 由于encryption的数据和密钥都位于同一台机器上,所以它只会使得难度增大,但理论上并不是不可能得到数据。
您还可以将用户名和密码存储在registry中,而不是存储在configuration文件中。 尝试连接到数据库时,请从registry中读取用户名和密码。 请记住,您必须在存储在registry中时encryption用户名和密码,并在从registry中检索时解密用户名和密码。
- 在Rails 4中的rescue_from ActionController :: RoutingError
- ' – >'(箭头运算符)和'。'之间的区别是什么? (点运算符)在Objective-C?
- 在C和C ++中,const指针指针是什么意思?
- 如何在WebBrowser控件中注入Javascript?
- String.Split仅在C#中的第一个分隔符?
- 在inheritance中调用构造函数/析构函数的顺序
- 自动Cookie处理C#/ .net HttpWebRequest + HttpWebResponse
- 使用XSD文件生成XML文件
- 值不能为空。 参数名称:值,CreateIdentityAsync?
- 为什么使用C#类System.Random而不是System.Security.Cryptography.RandomNumberGenerator?
- 你如何实现一个asynchronous操作委托方法?