c# entity-framework ado.net

c# - Cifrar contraseña en App.config



entity-framework ado.net (3)

Quiero cifrar 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 una forma de mantener solo la contraseña cifrada.


Digamos que esta es su cadena de conexión:

<connectionStrings> <add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/> </connectionStrings>

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 utilizando ejemplos de aquí: Encriptar y descifrar una cadena


Tal vez descifre la cadena de conexión de su configuración antes de cargar la aplicación.


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

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

Hay documentos de procedimientos para cifrar las secciones de configuración en MSDN para RSA o DPAPI .