`
shirlly
  • 浏览: 1644324 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

web.config 文件加密

    博客分类:
  • .NET
阅读更多
一般来说,我们是需要对web.config文件中的一些敏感信息加密的。通常如下节点会考虑加密,除此之外,很多节点通常都不会被加密,甚至于不能被加密:

1) <appSettings>  一般包含一些我们自定义的信息。
2) <connectionStrings>  这个大家比较熟悉,包含连接数据库用的字符串。
3) <identity>  包含使用impersonate时的账户信息。
4) <sessionState>  包含将session置于process外的连接字符串。

提到加密,我们一般有会想用什么算法加密,怎么样来加密。第一个问题,ASP.NET提供了两种加密方式,DPAPI和RSA。我们可以选择其中一种方式来加密我们的web.config。第二个问题,我们同样也有两种方式,利用aspnet_regiis.exe工具或在程序中用代码加密。

首先,先谈谈使用aspnet_regiis.exe加密的一些命令。先打开Visual Studio的命令行窗口,然后输入 aspnet_regiis /?,我们可以查看关于aspnet_regiis的一些帮助信息。此例中,我们使用DPAPI来加密connectionStrings,website在IIS的sample1虚拟目录中:

     aspnet_regiis -pe "connectionStrings" -app "/sample1" -prov "DataProtectionConfigurationProvider"

如果我们的website还没用publish到IIS中,我们可以使用如下命令来加密 - 给出website的绝对路径:

     aspnet_regiis -pef "connectionStrings" C:\Projects\sample1 –prov "DataProtectionConfigurationProvider"

这样一个简单的加密就完成了。在获取这些加密信息时,我们可以使用如下代码,它可以自动帮我们解密:

     string connStr = ConfigurationManager.ConnectionStrings["test"].ConnectionString;

如果你想将加密的节点改回原来的状态,你可以使用-pd参数:

     aspnet_regiis -pd "connectionStrings" -app "/sample1"



同样,我们也可以在程序用进行加密解密。

加密:
// Get the current configuration file.
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

// Get the section.
ConfigurationSection appSec = config.GetSection("appSettings");

if (appSec != null && !appSec.SectionInformation.IsProtected)
{
    // Protect (encrypt)the section.
    appSec.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");

    // Save the encrypted section.
    appSec.SectionInformation.ForceSave = true;
    config.Save();
}

解密:
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

ConfigurationSection section = config.GetSection("appSettings");

if (section != null && section.SectionInformation.IsProtected)
{
    section.SectionInformation.UnprotectSection();
    config.Save();
}


不过有一点要注意,当你将加密后的website移到另一台IIS上时它是不能进行解密的,因为加密的key是放在本地机器的。此时你需要在另一台server上重新使用aspnet_regiis进行加密。

RSA和DPAPI有点不同。DPAPI的key是难以导出的,而RAS的key是容易导出的。这表明我们可以在本地使用RSA进行加密,然后把这个key导出,并安装到server上就可以直接进行解密了。

转自:http://www.cnblogs.com/David-Qian/archive/2009/01/23/1380355.html
分享到:
评论

相关推荐

    web.config加密解密工具(三个软件集合)

    6. **jb51.net.txt**:jb51.net是一个知名的编程资源网站,这个文本文件可能包含了与`web.config`加密解密相关的文章链接或代码示例。 在使用这些工具时,需要注意的是,虽然它们能够帮助开发者查看或修改加密的...

    asp.net mvc web.config文件加密

    方便加密或者解密asp.net mvc网站web.config文件中的数据库连接串。加密后即使黑客拿到web.config文件也看不到你的数据库连接串,增加网站和数据库安全!有了这个工具,就不用记那些晦涩的dos命令拉

    C#Web.config文件详解

    根目录下的Web.config文件为整个应用设定默认配置,子目录可以有自己独立的Web.config,这些子目录的配置会覆盖父目录的配置,但也可以继承部分未明确覆盖的设置。在运行时修改Web.config文件,大多数更改无需重启...

    web.config加密工具

    为了保护这些信息不被未授权的用户访问或篡改,我们可以对`web.config`文件进行加密。本文将详细介绍`web.config`加密工具及其应用。 `web.config`文件是ASP.NET应用程序的核心配置文件,它存储了应用的配置设置,...

    web.config本地加密解密方法.txt

    标题与描述均提到了“web.config本地加密解密方法”,这指向了在.NET框架中对web.config文件进行安全处理的一种重要技术。web.config是ASP.NET应用程序的核心配置文件,存储着应用的各种设置,包括连接字符串、应用...

    C# ASP.NET - 加密解密Web.config文件

    本篇文章将深入探讨如何使用C# ASP.NET进行Web.config文件的加密与解密。 首先,我们要理解保护Web.config文件的重要性。Web.config文件通常包含敏感数据,如数据库连接字符串,如果这些信息被未经授权的用户获取,...

    C# Web.Config 加密与解密 3

    为了保护这些信息不被未授权的用户查看或修改,我们可以对Web.config文件进行加密。本篇文章将详细探讨C#中Web.config的加密与解密过程。 ### 1. Web.config加密的重要性 Web.config文件通常包含敏感数据,例如...

    web.config加密解密

    为了保护这些敏感数据不被未经授权的人访问或篡改,对 `web.config` 文件中的敏感信息进行加密处理变得尤为重要。本文将详细介绍如何使用 ASP.NET 提供的工具来实现 `web.config` 文件中敏感信息的加密与解密。 ###...

    C# Web.Config 加密与解密

    用后台编码的形式对web.config数据库连接字符串或者某个节点进行加密这里提供俩种方式:DataProtectionConfigurationProvider和RSAProtectedConfigurationProvider

    博客中web.config的加密与解密的Demo

    ASP.NET提供了一种名为`Protected Configuration`的安全特性,允许开发者使用`aspnet_regiis.exe`工具对`web.config`文件进行加密。这个工具是ASP.NET安装的一部分,位于.NET Framework的安装目录下,例如`C:\...

    web.config加密与解密

    首先,我们需要了解ASP.NET自带的`aspnet_regiis.exe`工具,这是一个用于管理ASP.NET注册的命令行工具,也包含了对`web.config`文件的加密和解密功能。该工具位于.NET Framework安装目录下的`%windir%\Microsoft.NET...

    加密Web.Config文件

    加密Web.config文件是.NET开发中保护敏感信息的重要实践。Web.config文件通常用于存储应用程序的配置信息,如数据库连接字符串、应用程序设置等。当这些信息包含敏感数据,如用户名、密码或API密钥时,直接以明文...

    加密Web.config配置文件

    加密Web.config配置文件、加密Web.config配置文件

    web.config machineKey 生成的算法

    在ASP.NET应用程序中,`web.config`文件是一个非常重要的配置文件,它包含了应用程序的各种设置,如安全性、数据库连接字符串、身份验证模式等。其中,`machineKey`元素是用于加密和解密数据的关键部分,特别是在...

    详解C#App.config和Web.config加密

    如果要加密App.config文件,首先需要将其重命名为Web.config,因为aspnet_regiis工具默认只处理Web.config文件。在加密成功之后,再将其改回App.config。 加密时可能遇到的问题之一是加密失败。解决这类问题的一个...

    C# Web.Config 加密与解密 2

    在.NET框架中,Web.config文件是ASP.NET应用程序的主要配置文件,它存储了应用程序的设置、连接字符串、身份验证和授权规则等敏感信息。为了保护这些信息不被未授权的用户查看或修改,开发者有时会选择对Web.config...

    app.config和或web.config中ConnectionString的加密与解密

    在加密ConnectionString后,需要将加密后的字符串保存回`app.config`或`web.config`文件。可以使用`System.Configuration.ConfigurationManager`类的`Save()`方法来完成这个操作。 通过以上步骤,你可以确保在C#...

    ASPHere web.config文件编辑器

    **ASPHere Web.config 文件编辑器** ASPHere 是一款专为 .NET 开发者设计的免费 Web.config 文件编辑器。Web.config 文件是 ASP.NET 应用程序的核心配置文件,它存储了应用程序的设置、安全信息、数据库连接字符串...

    web.config连接访问带密码Acccess

    首先,我们需要了解`web.config`文件。它是ASP.NET应用程序的核心配置文件,存储了应用程序的设置、安全性信息、连接字符串等。在`web.config`中定义数据库连接字符串,可以方便地管理和维护应用程序与数据库的连接...

    ASP.NET web.config中 数据库连接字符串加密解密

    对于.NET应用程序而言,保持web.config文件的安全性是十分重要的,因此掌握如何利用aspnet_regiis.exe工具加密和解密web.config中的连接字符串对于Web开发者来说是一个不可或缺的技能。 在操作时,应当确保操作者的...

Global site tag (gtag.js) - Google Analytics