Teniendo una web.config así:
<connectionStrings> <add name="CONNECTIONNAME" connectionString="Data Source=SERVERNAME;Initial Catalog=DBNAME;User ID=DBUSER;pwd=PASSWORD" providerName="System.Data.SqlClient" /> </connectionStrings>
Desde la línea de comandos (Windows + R, cmd, ENTER), ejecutar lo siguiente (Ejecutar como Administrador en Win7/Vista):
Para encriptar:
aspnet_regiis.exe -pef "connectionStrings" "C:\Websites\Website1"
Para desencriptar:
aspnet_regiis.exe -pdf "connectionStrings" "C:\Websites\Website1"
Donde:
-pef: «e» encriptar; «f» recibe como parámetro una ruta física a una aplicación web
-pdf: «d» desencriptar; «f» recibe como parámetro una ruta física a una aplicación web
«connectiontrings» es la sección que queremos encriptar, incluyendo secciones personalizadas
«C:\Websites\Website1» es la ruta física de la aplicación/sitio web
Quedaría así:
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider"> <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>Rsa Key</KeyName> </KeyInfo> <CipherData> <CipherValue>J1XDbXgreRWeiaWgE7bD5+qFGyCflaO7uRSDeKyJavI0jGNoma2xbg=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>rSjtclrMJX+ZHHKuCZhsbQjQtR6c1cwXCwF4u8gorx3Me15kW6Ezu3zdXjgA0=</CipherValue> </CipherData> </EncryptedData> </connectionStrings>
Consideraciones:
Hay que hacer esto (encriptar/desencriptar) en el servidor de producción, ya que las claves de cifrado son específicas al equipo.
En caso de no tener acceso a la línea de comandos (ejem: hosting compartido), se puede crear una página ASP.Net la cual permita encriptar/desencriptar una sección del web.config. En este caso, primero hay que subir el web.config desencriptado. Para más información, ver ASP.NET – Encriptar el web.config – II
Referencias:
Encrypting Configuration Information in ASP.NET 2.0 Applications
Encrypting Web.Config Values in ASP.NET 2.0
Encrypting Custom Configuration Sections
Encrypting and Decrypting Configuration Sections
Cifrado de información en los archivos de configuración de ASP.NET
ASP.NET – Encriptar el web.config – I
ASP.NET – Encriptar el web.config – II
ASP.NET – multiples archivos de configuracion III
Posted by coreapp77 on 12 abril, 2012 at 15:21
Reblogged this on coreapp.
Posted by luis robledo on 24 octubre, 2012 at 12:52
Hola actualmente me dieron un proyecto en el cual esta encriptado, esta enuna clase de java, me puedes decir alguna manera de desencriptarlo
Posted by Jose on 12 marzo, 2018 at 9:49
Buenos dias con todos.
Recurro a ustedes para ver la posibilidad de que me puedan dar una mano con una consulta.
Estoy encriptando una cadena de conexión(webconfig) y cuando ejecuto el aplicativo en mi PC se ejecuta sin problemas. Cuando el publicado lo llevo a un servidor, no funciona y me muestra el siguiente mensaje: Error al descifrar utilizando el proveedor ‘RsaProtectedConfigurationProvider’. Mensaje de error desde el proveedor: Datos incorrectos.
Mi consulta es:
. Porque sucede este inconveniente?
.. Que hay que hacer para dar solución al problema presentado.
Desde ya agradezco su atención.
Gracias
Posted by Jonathan on 7 agosto, 2018 at 15:01
Debes volver a encriptarlo pero esta vez en el servidor donde lo estas publicando
Posted by Encryptar – Desencryptar web.config IIS – Conociendo aun mas on 26 marzo, 2019 at 23:58
[…] ASP.Net: encriptar y desencriptar web.config Autor cbocanegraPublicado el 27 marzo, 2019Categorías .NET, ASP .NET, WebEtiquetas iis, seguridad […]
Posted by Israel on 9 agosto, 2020 at 2:41
Podrian colocar en linea nuevamente el articulo de la url http://www.neuronasoft.net/2008/06/aspnet-encriptar-el-webconfig-ii.html antualmente no esta disponible-