以编程方式加密 .NET 中的配置文件

Posted

技术标签:

【中文标题】以编程方式加密 .NET 中的配置文件【英文标题】:Programmatically encrypting a config-file in .NET 【发布时间】:2010-09-06 12:33:49 【问题描述】:

有人可以简要介绍一下如何在 .NET 中以编程方式加密配置文件,最好是在 C# 中。

我想做的是对应用程序的启动进行某种检查,以查看某个部分是否不受保护,如果是,则对其进行加密。这适用于设置和连接字符串。

如果有人可以列出加密提供者的类型以及它们之间的区别。

我不知道在普通 WinForms 应用程序中执行此操作的代码是否对在 ASP.NET 中执行此操作是透明的。

【问题讨论】:

【参考方案1】:

总结答案和我到目前为止发现的内容,这里有一些很好的链接来回答这个问题:

Encrypting Configuration Information in ASP.NET 2.0 Applications - 4GuysFromRolla.com How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI - MSDN

请随意补充其他链接,可能是 WinForms 或 WPF 应用程序的一些链接。

【讨论】:

【参考方案2】:

4 个人写了一篇关于Encrypting Configuration Information in ASP.NET 2.0 Applications 的好文章

希望对你有帮助

【讨论】:

【参考方案3】:

以下站点的解决方案对我来说很好。

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

【讨论】:

【参考方案4】:

@TK:哈希算法只能“猜测”,不能逆向工程。只能通过完全猜测输入来将输入重建为哈希值(即除了碰撞之外)这可以通过例如彩虹裂缝来完成(参见an implementation of a rainbow cracker here)

我会说第 3 方加密工具并不比 .NET 框架加密算法更安全,这些库只是帮助您更快地完成工作

【讨论】:

【参考方案5】:

我自己没有使用过,但 Microsoft Enterprise 库具有良好的加密支持,可能会满足您的需求:

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

【讨论】:

以上是关于以编程方式加密 .NET 中的配置文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在.net 中以编程方式设置连接字符串配置?

如何从头开始以编程方式配置 log4net(无配置)

winform程序如何加密配置文件

加密配置文件以进行部署

如何使用 Spring Boot 以编程方式确定当前的活动配置文件 [重复]

以编程方式配置 log4net,但额外的日志记录到控制台