Encriptar contraseña en App.config

Quiero encriptar la contraseña en la cadena de conexión. Cuando hago una conexión a DB, la cadena de conexión se almacena abiertamente en App.config y necesito encontrar la manera de mantener cifrada solo la contraseña.

Digamos que esta es su cadena de conexión:

   

Entonces puedes hacer algo como esto:

 string myCs = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString; System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder(myCs); csb.Password = EncDecHelper.Decrypt(csb.Password); myCs = csb.ToString(); 

Puede escribir EncDecHelper.Decrypt usando muestras de aquí: Cifrar y desencriptar una cadena

Use la sección de configuración de connectionStrings y encripte toda la sección, en lugar de solo la contraseña.

Esto es más seguro ya que la configuración de su aplicación ya no tendrá nombres de servidor y nombres de usuario en texto sin formato.

Hay documentos prácticos para encriptar secciones de configuración en MSDN para RSA o DPAPI .

Tal vez descifre la cadena de conexión de su configuración antes de que se cargue la aplicación.