encriptar la connection de SQL c #

Creé una aplicación c # (no una página web asp) que se conecta a un server SQL 2005. En mi código fuente, la contraseña y el ID de usuario para este server sql están codificados en text plano en ConnectionString.

SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=server1;"+ "Initial Catalog=mydatabase;"+ "Integrated Security=no;"+ "User ID=admin;Password=mypassword;"; con.Open(); 

¿Hay alguna manera fácil de cifrar la contraseña o la connection entera, que otras personas que desmontan mi herramienta no puedan ver la contraseña?

Gracias

Debe almacenar su cadena de connection en un file de configuration y encriptar esa sección. Consulte http://www.4guysfromrolla.com/articles/021506-1.aspx o http://msdn.microsoft.com/en-us/library/89211k9b%28VS.80%29.aspx .

Hay dos forms de hacerlo:

1) Puede usar la sección de configuration segura para cifrar y descifrar la cadena de connection de su código fuente:

 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) Puede bloquear la aplicación de acceso a datos de Enterprise Library para realizar el encryption utilizando RSAProtectedConfigurationProvider o DPAPIProtectedConfigurationProvider.

Para get un artículo completo, vaya a -> http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx

No, solo puedes hacerlo difícil

Es mejor dejar que la aplicación use un inicio de session de database especial que solo tiene acceso a las tablas / procedimientos necesarios.

Puede cifrar secciones en la aplicación.config de la misma manera que web.config. MS lo llama Configuración protegida . Dado que tanto los datos encriptados como la key residen en la misma máquina, solo lo hace más difícil pero, en teoría, no es imposible acceder a los datos.

también puede almacenar el nombre de usuario y la contraseña en el logging en lugar de almacenarlos en el file de configuration. Lea el nombre de usuario y la contraseña del logging cuando intente conectarse a la database. Recuerde que debe cifrar el nombre de usuario y la contraseña mientras se almacena en el logging y descifrar el nombre de usuario y la contraseña mientras se recupera del logging.