我正在开发一个小型winform应用程序。这里我有一些配置设置,例如用户名和密码等等。
现在我的要求是我要加密这个特定的细节。那么有人可以告诉我如何在.NET(C#)中完成这项工作。
答案 0 :(得分:1)
您可以使用 RsaProtectedConfigurationProvider http://msdn.microsoft.com/en-us/library/system.configuration.rsaprotectedconfigurationprovider.aspx
答案 1 :(得分:1)
您可以使用sections of your app.config
加密DPAPI provider
。将您的用户名/密码对添加到appSettings部分。您的应用程序中无需更改任何其他内容。你仍然像往常一样继续阅读appsettings字符串。使用以下代码加密/解密部分配置文件。
//call: ProtectSection("appSettings","DataProtectionConfigurationProvider");
private void ProtectSection(string sectionName, string provider)
{
Configuration config =
WebConfigurationManager.
OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && !section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection(provider);
config.Save();
}
}
//call: UnProtectSection("appSettings");
private void UnProtectSection(string sectionName)
{
Configuration config =
WebConfigurationManager.
OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && section.SectionInformation.IsProtected)
{
section.SectionInformation.UnprotectSection();
config.Save();
}
}
答案 2 :(得分:0)
This article描述了如何加密和解密字符串。这是你打电话的课程,但提供了源代码,以便你可以看到它是如何工作的。
关于Sharper Tutorials的This article实际上涵盖了加密连接字符串的情况。
不幸的是,这里引用的时间太长了。
答案 3 :(得分:0)
有build-in support for encrypting configuration files for ASP.NET applications using Windows Data Protection API但我从未尝试过,如果这也可以应用于App.config。这样做的好处是密钥存储在操作系统控制下的密钥存储区中。
除此之外,我不知道任何其他内置解决方案,我们通常在读取加密值后自行解密。这需要在某处存储密钥 - 通常包含在代码中 - 并且远非最佳。因此,如果可能,应使用Windows集成安全性(例如,不推荐使用SQL Sever身份验证)或任何其他高级基础结构(如Kerberos)(如果可用)。