webconfig加密

 

.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Configuration;

namespace WebConfig加密
{
    public partial class index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        Configuration myConfiguration = null;
        ConfigurationSection myAppSettings = null;

        // DPAIP加密(用的最多)
        protected void btnDPAIP_Click(object sender, EventArgs e)
        {
            try
            {
                getAppSettings(out myConfiguration, out myAppSettings);

                if (!myAppSettings.SectionInformation.IsProtected)
                {
                    //DPAPI加密
                    myAppSettings.SectionInformation.ProtectSection

                                ("DataProtectionConfigurationProvider");
                   
                    //储存设定写入web.config文件
                    myConfiguration.Save();
                    Response.Write("用DPAIP加密成功");
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message.ToString());
            }
        }

        // RSA加密(需要设置权限,比较麻烦,用的不多)
        protected void btnRSA_Click(object sender, EventArgs e)
        {
            try
            {
                getAppSettings(out myConfiguration, out myAppSettings);

                if (!myAppSettings.SectionInformation.IsProtected)
                {
                    //RSA加密
                    myAppSettings.SectionInformation.ProtectSection

                                  ("RsaProtectedConfigurationProvider");

                    //储存设定写入web.config文件
                    myConfiguration.Save();
                    Response.Write("以RSA加密成功!");
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message.ToString());
            }
        }

        //取得取得Web.config中appSettings设定区段(还可以根据需要,设置需要加密的节点)
        protected void getAppSettings(out Configuration myConfig, out ConfigurationSection

                                     appSettings)
        {
            //开启Request所在路径网站的Web.config文件
            myConfig = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
           
            //取得Web.config中appSettings设定区段
            appSettings = myConfig.GetSection("appSettings");
        }

        // 完全解密
        protected void btnResolve_Click(object sender, EventArgs e)
        {
            try
            {
                getAppSettings(out myConfiguration, out myAppSettings);
                if (myAppSettings.SectionInformation.IsProtected)
                {
                    myAppSettings.SectionInformation.UnprotectSection(); //解密
                    myConfiguration.Save();
                }
                Response.Write("appSettings解密成功!");
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message.ToString());
            }
        }
    }
}

 

.aspx

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnDPAIP" runat="server" Text="DPAIP加密" onclick="btnDPAIP_Click" />
        <br />
        <br />
        <asp:Button ID="btnRSA" runat="server" Text="RSA加密" onclick="btnRSA_Click" />
        <br />
        <br />
        <asp:Button ID="btnResolve" runat="server" Text="完全解密"
            onclick="btnResolve_Click" />
    </div>
    </form>
</body>

加密前

  <appSettings>
    <add key="con" value="data source=.\SQLEXPRESS;Integrated

    Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" />
  </appSettings>

 

加密结果

  <appSettings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
      <CipherData>
       <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAzCJXt/1660evq+/58WwHfAQAAAACAAAAAAADZgAAqAAAABAAAABa4SlZnvwdFhVlRr9PuT3hAAAAAASAAACgAAAAEAAAAEDgN4H/IpjLojCaYhMXkudgAQAA1NHa7mkrBWMGqXH9nmGi8Ie1Mnuh1iD8hXaAzZ8/4UnzAwIyJBvLHln/Kv+LatS/w8hLkTR/GbnIkYhzeuk/ER1m76VUzuhRY7KcwdXkZkOxelEjWZU/jA7wcvgyEN7OkRyhV0nz98zHI+XdxQkFsLEltNacCqBx3PgCkX+sKz1hyzp06D0QQOIbqoaNSWl/QuBAIxlZohAKaTxAQcnKjrOuBofp49N4OCbDFdoIFMfWaoCSfQV0xQUEVRCkBzzd/FGVjrSYeLgk9CM9vdSnioLUDIMv62dxqEYM/0dRd4qhYTghIzWwe/POKR8IxUC++zRT/kEKh5cTw8OppW+mU1+6oqul98jxxk//UJ/HyVEBZ8XAVhetcSjUH1eXyzBcup03L8V+WnEmqAwzoibMpDmTkXIEitSZRJ/8Fy26hByUJkslQFYdtLgZ92OCLfSVCW3etWXDtMpD7cfJuMP6XBQAAAAYjlMjewxEJfZKD64skP+Lnh5x6w==</CipherValue>
      </CipherData>
    </EncryptedData>
  </appSettings>

 

加密一般用在神马时候呢?

 

当你把这个程序发布给用户,发布之前,你需要把你不希望暴露给用户的信息的节点加密。

时间: 2024-09-11 13:43:03

webconfig加密的相关文章

IIS下对WebConfig加密后无法访问网站

问题:   使用.NET自带的命令可以对WebConfig中某个节点的内容进行加密   步骤: 1. cmd模式下    cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727   2. 加密:    aspnet_regiis -pef "connectionStrings" "D:\SharpMapSource\DemoWebSite"   3. 解密:    aspnet_regiis -pdf "conne

asp.net 2.0 Webconfig中连接串的加密

ASP.NET 2.0 允许用户对配置文件的单个节进行加密本文.通过示例,演示如何以编程方式对配置节进行加密,配置API如何自动处理加密的节. ASP.NET 2.0 现在允许您对配置文件的单个节进行加密,这样,几乎不可能使用文本编辑器来读取这些配置节. ASP.NET 包括两个内置的受保护配置提供程序:RSA和DPAPI DPAPI提供程序使用特定于计算机的密钥,因此您必须在每台计算机上实际加密配置设置.默认使用的RSA提供程序允许您选择创建RSA密钥并将其安装在其他计算机上,这样您就可以在这

解决打不开 RSA 密钥容器 即:加密web.config中的内容

简单的解决方法: WebConfig 加解密,未能使用提供程序"RsaProtectedConfigurationProvider"进行解密.提供程序返回错误消息为: 打不开 RSA 密钥容器.问题:未添加用于访问 RSA 密钥容器命令:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"注意事项:XP下:aspnet_regiis -pa

请教高手防WebConfig的问题?

问题描述 WebConfig文件加密后怎么办,能解密吗,请高手指点 解决方案 解决方案二:什么呀

webconfig配置

问题描述 请问.NETC#webconfig的正确配置 解决方案 解决方案二:web.config是一个xml文档(现在越来越流行用xml做配置文件了)根元素是configuration然后包含一个system.web节点在第三层次是对站点的各种设置web.config可以设置的标签非常之多,那么,简单的做个介绍,当用到的时候可以去好好查阅在web系统中自定义的设置我经常使用它来保存数据库的一些相关连接数据之后读取很方便关于浏览器的设置比如是否允许JavaApplet...关于编译的方式自定义发

现在一个奇怪的项目,每一台客户机上都有web服务器,问题是怎么保护webconfig中的认证方式?

问题描述 现在的感觉就是金库和盗贼在一起的感觉,但是没办法已经那么设计了,有什么办法可以保护webconfig阿.我自己能够想到的办法有如下这些,大家帮忙看看,可行性如何?1.为使用的用户单独创建一个windows账户,该帐户没有修改webconfig的权限,我担心这样做是不是权限太小了.2.aspnet_regiis-pe这个命令加密,但是照样可以解密,此路好像不通.3.connectionstring肯定会单独用工具加密的,但是比如SESSION时间,认证方式这些就不能自己加密了4.用强名称

加密配置节的信息

通常在应用asp.net程序的时候,会将连接数据库的的ConnectionString信息放到WebConfig.xml文件中,但是连接字符串中的用户名和密码不就暴露了吗其实可以用aspnet_regiis来加密和解密ConnectionString信息 比如加密的时候可以写一个加密的批处理文件@echo offC:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -pdf "connectionStrings"

PHP开发环境配置(含加密程序)

程序|加密 看到文章的题目,不知道大家还有没有兴趣看下去."PHP开发环境配置"~~这个题目就好像在大街上随便问一个人:"你喜欢吃什么?" 一样,答案当然是多种多样的.下面就来说说我个人的看法吧,各位高手不要见笑.但是我想这篇文章对于各位初学者来说还是有一定借鉴意义的.OK.Let's begin~ 在机器上配置好了开发环境,想必各位初哥初姐手痒着要写程序了吧?但是写在那里呢? 对于刚开始学习PHP的朋友来说,首先要知道,在各类PHP开发工具中还没有一个象Micro

标准PHP的AES加密算法类

 AES是分组密钥,算法输入128位数据,密钥长度也是128位.用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列).每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与.     分享一个标准PHP的AES加密算法类,其中mcrypt_get_block_size('rijndael-128', 'ecb');,如果在不明白原理的情况下比较容易搞错,可以通过mcrypt_list_algorithms函数查看你需要的加密算法标识.   代码如下