webconfig加密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
 

.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>

 

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

 

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

目录
相关文章
|
Java 数据安全/隐私保护
jasypt 配置文件关键信息配置 加密
jasypt 配置文件关键信息配置 加密
685 0
|
8月前
|
存储 安全 Java
Spring Security的密码加密和校验
本文介绍了Spring Security中密码的加密和校验。首先,在`SecurityConfig`配置类中添加了两个Bean,一个是`PasswordEncoder`的无操作实例,用于明文密码校验,另一个是`UserDetailsService`,用于创建内存中的用户信息。接着,文章对比了对称加密、非对称加密和摘要加密三种加密方式,并重点讲解了BCrypt摘要加密的特性,强调其安全性高于MD5。最后,通过代码示例展示了如何使用BCryptPasswordEncoder改造权限密码加密,确保密码的安全存储和校验。
359 6
|
8月前
|
消息中间件 NoSQL 数据库
jasypt配置文件密码加解密
jasypt配置文件密码加解密
72 1
|
8月前
|
Java 数据库 Maven
Jasypt 配置文件加密的用法
Jasypt 配置文件加密的用法
401 0
|
Java 网络安全
【SSH】Struts2中的ModelDriven机制
【SSH】Struts2中的ModelDriven机制
72 0
|
存储 安全 JavaScript
Spring Security灵活的PasswordEncoder加密方式
本章基于`Spring Security 5.4.1`版本编写,从`5.x`版本开始引入了很多新的特性。 为了适配老系统的安全框架升级,`Spring Security`也是费劲了心思,支持不同的密码加密方式,而且根据不同的用户可以使用不同的加密方式。
|
运维 NoSQL 小程序
SpringBoot配置文件加密jasypt【数据库配置加密、redis配置加密、核心参数加密】
SpringBoot配置文件加密jasypt【数据库配置加密、redis配置加密、核心参数加密】
389 0
|
安全 Java API
Java中使用Shiro实现对密码加盐并使用MD5加密处理
我们在保存用户密码等敏感信息的时候,需要进行加密处理保存,才能更安全地保护用户个人信息安全
330 0
|
Java 数据安全/隐私保护
java 密码MD5加密 加盐加密工具类
java 密码MD5加密 加盐加密工具类
|
前端开发 Java 数据安全/隐私保护