源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中Web.Config加密与解密的方法

  • 时间:2021-04-19 18:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中Web.Config加密与解密的方法
Web.Config,其中一部分配置如下:
[u]复制代码[/u] 代码如下:
  <appSettings>     <add key="EricTest" value="EricTest"/>     <add key="Encrypt" value="Encrypt value"/>   <appSettings>   <connectionStrings >     <add name="EncryptConnection" connectionString="Data Source=.\SQL2000;Initial Catalog=Northwind;user id=sa;password=test"/>     <add name="SQLExpress" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=myDB;user id=sa;password=test"      providerName="System.Data.SqlClient" />   <connectionStrings>  
在加密前,先做一些准备工作。 首先引用使用空间
[u]复制代码[/u] 代码如下:
using System.Configuration; using System.Web.Configuration; //将加密方式定义一下。主要是为了使用方便。         ///         /// 加密方式         ///         public enum EncryptType         {             DataProtectionConfigurationProvider,             RSAProtectedConfigurationProvider         }  
使用DPAPI加密
[u]复制代码[/u] 代码如下:
        ///         /// 以DPAPI方式加密Config         ///         private void EncryptWebConfigByDPAPI()         {             Configuration configuration = null;             ConfigurationSection connectionSection = null;             //打开Request所在路径网站的Web.config文件             configuration = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);             //取得Web.config中connectionStrings设置区块             connectionSection = configuration.GetSection("connectionStrings");             //未加密时             if (!connectionSection.SectionInformation.IsProtected)             {                 connectionSection.SectionInformation.ProtectSection(EncryptType.DataProtectionConfigurationProvider.ToString());                 configuration.Save();             }         }
加密前后的数据对比
[u]复制代码[/u] 代码如下:
  <connectionStrings >     <add name="EncryptConnection" connectionString="Data Source=.\SQL2000;Initial Catalog=Northwind;user id=sa;password=test"/>     <add name="SQLExpress" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=myDB;user id=sa;password=test"      providerName="System.Data.SqlClient" />   <connectionStrings>
[u]复制代码[/u] 代码如下:
  <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">     <EncryptedData>       <CipherData>         <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAPCENeNbVhU6C+bx4E8qcPAQAAAACAAAAAAAQZgAAAAEAACAAAADiE56Y0pGCoKEpOvxMVmMYO3tMqI/2W89HUIq0LeJAegAAAAAOgAAAAAIAACAAAACYuFOjNtk1iprbV91mmP8aCIULLZvRHAPwbAvoHvtXpKACAABP0/YOt/B8IG/eLnaxrDVCXPq6l8McVOvpL0hV4507VEpJb6FyRoM9c5TI6iIF6Jz8GQfnfQiF4P27RLyvvvu/R9KpuwDsZ0IKjpe47Nt/q/qOLlQx6vhQVE8yAjJ64DrujH6wjS2XdZSC03Co4u9OG/YdJX9zkpjVMNW8cx5FFklYmIzHxWx+b1ZFtZMu0CA8lzU4slkTBFmE3JMMa4KqC6EGedDXD3z53QkBt3KISWt1lM5ulPeQ8rfR7qrzUEWQsgaGLuNTJvCDwlPJWbZVzQaOHo71/epQRPHgvmNAkK1/hRqwXr0uMF9K6HNKCr0NDLFECLHcjCC4zR6QhhWdWT8FHPm2Zg2yucekeHQsrbiWtjZqg/DdyVPLWqmEdj82T1Gm9u9xhDHuNLpOT1FXy7bGjjok9TW1MxbWIXQ7bBih0mUwmvESD8aZGdxoH0XEFyy3flY2hjwszG4Opg3Qmz1/S0x6Sbz1vJJL7rk7FTdG3PwMDFvcvKlmmDZQTkM3SqplazwrjYI4IJBnIAL/uBxwMdxO515lWS55dDkdnx5r8HtGoeCN+cw5qFW8xxRPRsQKg6Sgti1GF2KzezZ5WJegN0hqUs18XoEpzCuuALbzHqRNBswwn0/GfdadxfwdNxoTHdJ+cQC3vSLk5f02pTW9CFZWDn30AFjIpMtArNltppLvWAP1YxtKMtyzjmv7iiIOsMtHFICTJAzO7FeTc+YToifu/wddPESZQB2MlrefnUK+cBkoSzAusfhtqUWfhblv6JnEq5A/PdohEkSu0dn2pC6AeqoG/Yngb6BJzpRFxssDfIkDH6LfXdo4s5WJXJx7VQNqUo4mmTKoUcp6DGmoogZqbHODL3MbgKFQyjdvXV9+4Aa9qOlHbcKDL5tAAAAAChj0UAPAO59pmMZ7gJ67ho1Mxjg9NTuAh/lG5XI+phDRzWcNRmjv2ZrUhz8eWIgCMoIG7NviBnbmCeT4K8pXUw==CipherValue>       <CipherData>     <EncryptedData>   <connectionStrings>  
  对使用DPAPI加密的数据解密
[u]复制代码[/u] 代码如下:
        ///         /// 解密DPAPI         ///         private void DecryptWebConfigByDPAPI()         {             Configuration configuration = null;             ConfigurationSection connectionSection = null;             //打开Request所在路径网站的Web.config文件             configuration = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);             //取得Web.config中connectionStrings设置区块             connectionSection = configuration.GetSection("connectionStrings");             if (connectionSection.SectionInformation.IsProtected)             {                 connectionSection.SectionInformation.UnprotectSection();                 configuration.Save();             }         }  
调用DPAPI加密数据(无需解密)
[u]复制代码[/u] 代码如下:
        ///         /// 取得加密后的数据         ///         private void GetEncryptWebConfigByDPAPI()         {             string cncryptConnection = WebConfigurationManager.ConnectionStrings["EncryptConnection"].ConnectionString;             string sqlExpressConnection = WebConfigurationManager.ConnectionStrings["SQLExpress"].ConnectionString;         }
使用RSA加密
[u]复制代码[/u] 代码如下:
        ///         /// 以RSA方式加密Config         ///         private void EncryptWebConfigByRsa()         {             Configuration configuration = null;             ConfigurationSection connectionSection = null;             //打开Request所在路径网站的Web.config文件             configuration = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);             //取得Web.config中connectionStrings设置区块             connectionSection = configuration.GetSection("appSettings");             //未加密时             if (!connectionSection.SectionInformation.IsProtected)             {                 connectionSection.SectionInformation.ProtectSection(EncryptType.RSAProtectedConfigurationProvider.ToString());                 configuration.Save();             }         }
加密前后数据对比:
[u]复制代码[/u] 代码如下:
    <appSettings>     <add key="EricTest" value="EricTest"/>     <add key="Encrypt" value="Encrypt value"/>   <appSettings>
[u]复制代码[/u] 代码如下:
  <appSettings configProtectionProvider="RsaProtectedConfigurationProvider">     <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"       xmlns="http://www.w3.org/2001/04/xmlenc#">       <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />       <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">         <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">           <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />           <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">             <KeyName>Rsa <KeyKeyName>           <KeyInfo>           <CipherData>             <CipherValue>CJIkulw6qBtLeY5MJ9bs1ROpF1l3f4ulRzKnd6ZXN6XyG9O+b6Hr52ijK1AL9/+nsBseAPfdKDGaX/SKlJYwgzHhhi9sBrDBJ10dJcSnuGuWpI5zSLc+QHdpV0Z4iJTw83jmRDb9eFCX7aG60qWl52ofeqlI/ps1HsOjlKPSv8M=CipherValue>           <CipherData>         <EncryptedKey>       <KeyInfo>       <CipherData>         <CipherValue>y1aEM/BRwcwZXWeuLe9mbakU8AuI7CpElrjoJgQEfzaoZXq7uEJspQAxJyDIYmCF4EgjKhE7pY6WBRAjRaBBODxxEQHGJ8I1+T554H8zosZ2InO43h5X0ZjCmvAWxNbEq1rP9DnuTcHEYqrw70nNShf79W6e2fmUF1DoVpwYNWMLeHJCP7ZkZg==CipherValue>       <CipherData>     <EncryptedData>   <appSettings>
解密RSA加密数据
[u]复制代码[/u] 代码如下:
        ///         /// 解密Rsa         ///         private void DecryptWebConfigByRsa()         {             Configuration configuration = null;             ConfigurationSection connectionSection = null;             //打开Request所在路径网站的Web.config文件             configuration = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);             //取得Web.config中connectionStrings设置区块             connectionSection = configuration.GetSection("appSettings");             if (connectionSection.SectionInformation.IsProtected)             {                 connectionSection.SectionInformation.UnprotectSection();                 configuration.Save();             }         }
调用使用RSA加密数据(无需解密)
[u]复制代码[/u] 代码如下:
        ///         /// 取得加密后的数据         ///         private void GetEncryptWebConfigByRsa()         {             string cncryptConnection = WebConfigurationManager.AppSettings["EricTest"];             string sqlExpressConnection = WebConfigurationManager.AppSettings["Encrypt"];         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部