您的位置:首页 > 其它

web.config文件加密

2012-06-11 16:55 295 查看



有Web.Config,其中一部分配置如下:

<!--应用程序设置值-->

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

在加密前,先做一些准备工作。

首先引用使用空间

using System.Configuration;

using System.Web.Configuration;

将加密方式定义一下。主要是为了使用方便。

/// <summary>

/// 加密方式

/// </summary>

public enum EncryptType

{

DataProtectionConfigurationProvider,

RSAProtectedConfigurationProvider

}

使用DPAPI加密

/// <summary>

/// 以DPAPI方式加密Config

/// </summary>

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();

}

}

加密前后的数据对比

<!--加密前-->

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

-------------------------

<!--加密后-->

<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加密的数据解密

/// <summary>

/// 解密DPAPI

/// </summary>

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加密数据(无需解密)

/// <summary>

/// 取得加密后的数据

/// </summary>

private void GetEncryptWebConfigByDPAPI()

{

string cncryptConnection = WebConfigurationManager.ConnectionStrings["EncryptConnection"].ConnectionString;

string sqlExpressConnection = WebConfigurationManager.ConnectionStrings["SQLExpress"].ConnectionString;

}

使用RSA加密

/// <summary>

/// 以RSA方式加密Config

/// </summary>

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();

}

}

加密前后数据对比:

<!--加密前-->

<appSettings>

<add key="EricTest" value="EricTest"/>

<add key="Encrypt" value="Encrypt value"/>

</appSettings>

------------------------------

<!--加密后-->

<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 Key</KeyName>

</KeyInfo>

<CipherData>

<CipherValue>CJIkulw6qBtLeY5MJ9bs1ROpF1l3f4ulRzKnd6ZXN6XyG9O+b6Hr52ijK1AL9/+nsBseAPfdKDGaX/SKlJYwgzHhhi9sBrDBJ10dJcSnuGuWpI5zSLc+QHdpV0Z4iJTw83jmRDb9eFCX7aG60qWl52ofeqlI/ps1HsOjlKPSv8M=</CipherValue>

</CipherData>

</EncryptedKey>

</KeyInfo>

<CipherData>

<CipherValue>y1aEM/BRwcwZXWeuLe9mbakU8AuI7CpElrjoJgQEfzaoZXq7uEJspQAxJyDIYmCF4EgjKhE7pY6WBRAjRaBBODxxEQHGJ8I1+T554H8zosZ2InO43h5X0ZjCmvAWxNbEq1rP9DnuTcHEYqrw70nNShf79W6e2fmUF1DoVpwYNWMLeHJCP7ZkZg==</CipherValue>

</CipherData>

</EncryptedData>

</appSettings>

解密RSA加密数据

/// <summary>

/// 解密Rsa

/// </summary>

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加密数据(无需解密)

/// <summary>

/// 取得加密后的数据

/// </summary>

private void GetEncryptWebConfigByRsa()

{

string cncryptConnection = WebConfigurationManager.AppSettings["EricTest"];

string sqlExpressConnection = WebConfigurationManager.AppSettings["Encrypt"];



}


Web.Config加密【转】

注:本文转于/article/4717702.html
有Web.Config,其中一部分配置如下:

<!--应用程序设置值-->

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

在加密前,先做一些准备工作。

首先引用使用空间

using System.Configuration;

using System.Web.Configuration;

将加密方式定义一下。主要是为了使用方便。

/// <summary>

/// 加密方式

/// </summary>

public enum EncryptType

{

DataProtectionConfigurationProvider,

RSAProtectedConfigurationProvider

}

使用DPAPI加密

/// <summary>

/// 以DPAPI方式加密Config

/// </summary>

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();

}

}

加密前后的数据对比

<!--加密前-->

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

-------------------------

<!--加密后-->

<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加密的数据解密

/// <summary>

/// 解密DPAPI

/// </summary>

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加密数据(无需解密)

/// <summary>

/// 取得加密后的数据

/// </summary>

private void GetEncryptWebConfigByDPAPI()

{

string cncryptConnection = WebConfigurationManager.ConnectionStrings["EncryptConnection"].ConnectionString;

string sqlExpressConnection = WebConfigurationManager.ConnectionStrings["SQLExpress"].ConnectionString;

}

使用RSA加密

/// <summary>

/// 以RSA方式加密Config

/// </summary>

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();

}

}

加密前后数据对比:

<!--加密前-->

<appSettings>

<add key="EricTest" value="EricTest"/>

<add key="Encrypt" value="Encrypt value"/>

</appSettings>

------------------------------

<!--加密后-->

<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 Key</KeyName>

</KeyInfo>

<CipherData>

<CipherValue>CJIkulw6qBtLeY5MJ9bs1ROpF1l3f4ulRzKnd6ZXN6XyG9O+b6Hr52ijK1AL9/+nsBseAPfdKDGaX/SKlJYwgzHhhi9sBrDBJ10dJcSnuGuWpI5zSLc+QHdpV0Z4iJTw83jmRDb9eFCX7aG60qWl52ofeqlI/ps1HsOjlKPSv8M=</CipherValue>

</CipherData>

</EncryptedKey>

</KeyInfo>

<CipherData>

<CipherValue>y1aEM/BRwcwZXWeuLe9mbakU8AuI7CpElrjoJgQEfzaoZXq7uEJspQAxJyDIYmCF4EgjKhE7pY6WBRAjRaBBODxxEQHGJ8I1+T554H8zosZ2InO43h5X0ZjCmvAWxNbEq1rP9DnuTcHEYqrw70nNShf79W6e2fmUF1DoVpwYNWMLeHJCP7ZkZg==</CipherValue>

</CipherData>

</EncryptedData>

</appSettings>

解密RSA加密数据

/// <summary>

/// 解密Rsa

/// </summary>

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加密数据(无需解密)

/// <summary>

/// 取得加密后的数据

/// </summary>

private void GetEncryptWebConfigByRsa()

{

string cncryptConnection = WebConfigurationManager.AppSettings["EricTest"];

string sqlExpressConnection = WebConfigurationManager.AppSettings["Encrypt"];

}

本文原著:


/article/4717702.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: