Encriptar programáticamente un archivo de configuración en .NET

¿Podría alguien hacer un resumen de cómo cifrar mediante progtwigción un archivo de configuración en .NET, preferiblemente en C #.

Lo que me gustaría hacer es verificar el inicio de una aplicación para ver si una sección está desprotegida, y si lo está, encriptarla. Esto para ambas configuraciones y cadenas de conexión.

Además, si alguien pudiera enumerar los tipos de proveedores de cifrado y cuál es la diferencia entre ellos.

No sé si el código para hacer esto en una aplicación WinForms normal es transparente para hacer esto en ASP.NET.

Para resumir las respuestas y lo que he encontrado hasta ahora, aquí hay algunos buenos enlaces para responder a esta pregunta:

  • Cifrado de información de configuración en aplicaciones ASP.NET 2.0 – 4GuysFromRolla.com
  • Cómo: Cifrar secciones de configuración en ASP.NET 2.0 utilizando DPAPI – MSDN

Por favor, siéntase libre de complementar con otros enlaces, tal vez algunos a WinForms- o aplicaciones WPF.

Hay un buen artículo de 4 chicos sobre Cifrar información de configuración en aplicaciones ASP.NET 2.0

Espero que esto ayude

La solución en el sitio de abajo funciona bien para mí.

http://www.a2zmenu.com/Blogs/CSharp/How-to-encrypt-configuration-file.aspx

@TK: un algoritmo de hashing solo puede ‘adivinarse’, no modificarse por ingeniería inversa. Uno solo puede reconstruir la entrada a un valor hash adivinando completamente la entrada (aparte de las colisiones, eso es). Esto se puede hacer con una grieta del arcoíris, por ejemplo (ver una implementación de un cracker de arco iris aquí )

Diría que una herramienta de cifrado de terceros no es más segura que los algoritmos de cifrado de .NET framework, estas bibliotecas solo te ayudan a hacer tu trabajo más rápido

No lo he usado yo mismo, pero la biblioteca de Microsoft Enterprise tiene un buen soporte de encriptación que posiblemente se adapte a tus necesidades:

http://msdn.microsoft.com/en-us/library/cc309503.aspx