导航:首页 > 文档加密 > config加密教程

config加密教程

发布时间:2022-09-26 04:03:01

⑴ WEB.CONFIG如何加密

WEB.CONFIG 文件不需要加密,对客户端访问本身就有安全限制,不可以下载不可以访问。如果想防止服务器端看到,还是少往里面写系统设置信息,用数据库存储加密后的系统设置信息。

⑵ 如何为配置文件加密

在web.config或app.config文件里我们经常会存储一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="MyNwConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;"/>
</connectionStrings>
<appSettings>
<add key="User" value="myUsername"/>
<add key="Password" value="myPassword"/>
</appSettings>
</configuration>
using System;
using System.Configuration;

namespace WebConfigEncryptTest
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = ConfigurationManager.AppSettings.Get("User");
string password = ConfigurationManager.AppSettings.Get("Password");
string connectionString = ConfigurationManager.ConnectionStrings["MyNwConnectionString"].ConnectionString;
}
}
}

(一)加密文件可以使用的Provider
.NET为我们提供了一个工具aspnet_regiis.exe来对web.config文件中的敏感信息进行加密(app.config文件可以先改名为web.config,加密后再改回app.config)。你可以使用两个provider中的一个来进行加密:
System.Configuration.:在System.Configuration.dll中,使用Windows DPAPI(Data Protection API)来进行加密,密钥存在Windows Local Security Authority(LSA)中。注意:当使用时,加密文件所使用的帐号需要与运行web application的帐号相同,否则web application无法解密加密的内容。
System.Configuration.:在System.Configuration.dll中,使用RSA算法来进行加密(RSA算法是非对称加密,参见《对称加密与非对称加密 》),公钥存放在config文件当中,只有加密的计算机有密钥。通常是默认的缺省provider。
(二)加密文件的命令
加密web.config文件可以使用:
aspnet_regiis -pef section web-app-physical-dir
Encrypt the configuration section. Optional arguments:
[-prov provider] Use this provider to encrypt.

比如运行下面的命令就会分别对connectionStrings和appSettings中的信息进行加密:

aspnet_regiis.exe -pef "connectionStrings" "C:\myweb\HelloService"
aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService"

加密后的web.config文件变成:

<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
<connectionStrings configProtectionProvider="">
<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>E2fO9C0TJVxImLYQZza+fCQdDbTpNh/kOKLRsK6zcFjkgtUCl6SnMViuu/2G1NVTxqXyEWYwyK6AiCZA+feeG/+f2EIimP7LJI+JRZVerI4MU6Ke3wxm2S/ATc73/W6eg9808f4//JB0kso0kGJ9i+==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>I1DWG11Iz/rq+NC9C/21B3Q22J9+//JW1oCvAGs5tHrZU5+vgvm0yCmSuCWZbXva+iv9J35EQqs58pq+hwVo1hg1dffpGCBykaXGl5VX3TIGc=</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
<appSettings configProtectionProvider="">
<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>//SuBvV3D2kxhHaYGFaPuvYgsyOLf3+aYR3O/uh/+/iSANzAWoC+==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>5W2KhG/oETLUDptobcOM52x1qD/g9A0By/wcGXI+///w=</CipherValue>
</CipherData>
</EncryptedData>
</appSettings>
</configuration>

是默认的缺省provider,如果想使用,可以用-prov参数指明:

aspnet_regiis.exe -pef "connectionStrings" "C:\myweb\HelloService" -prov ""
aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService" -prov ""

加密配置文件后,源程序不需要做任何改动。如果要修改或添加新的配置信息,需要先解密配置文件。不论使用哪种Provider,都只能在进行加密的计算机上对配置文件进行解密。

⑶ 如何对web.config进行加密和解密

一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式。 1)概述:
Web.Config 中可以存储数据库连接语句,通常存于 <connectionString>配置节中,程序调用非常方便,但是在系统的应用过程中,利用明文存储这些敏感信息是不安全的,这就需要对配置信息进行加密,加密后即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。
使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各节。而在在处理 Web.config 文件时,ASP.NET 将自动解密已加密的配置元素。
要加密配置文件的内容, 通过Aspnet_regiis.exe 工具与 –pe 选项以及要加密的配置元素的名称一起使用,利用.NET Framework 提供的2种受保护配置程序来实现节点加解密:
名为的 实例使用 Windows 数据保护 API (DPAPI) 对数据进行加密和解密。
名为的 实例使用 RSA 加密算法对数据进行加密和解密。该提供程序配置为默认提供程序
下面就这2中加密方式,分别进行举例如下:
2)使用 来加解密配置节
利用aspnet_regiis -pef connectionStrings 对web.config 加密 在服务器命令提示符下,输入如下命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings D:\程序\某系统\EpointBid_HuiYuan –prov 正在加密配置节„ 成功!
-pef 指定两个参数:
这里 connectionStrings 是要进行加密的配置节,后面是具体的程序路径 这里 D:\程序\某系统\EpointBid_HuiYuan 是要加密的配置文件所在的物理目录。
-prov 表示使用哪个驱动来加密,一共有两个驱动可选,在类似于
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 的位置,我们可以找到 machine.config 文件,在其 configProtectedData 配置节,我们可以看到这两个驱动的名称,以及默认的驱动是哪一个。这两个驱动是 (类名 ,详细操作见下说明示例)和
(类名 )。
如果不加驱动选项,则采用默认驱动进行加密。

⑷ 如何加密app.config

输入如下命令进行加密:
aspnet_regiis
-pef
connectionStrings
c:\Websites\BegAspNet2Db解密:
aspnet_regiis
-pdf
connectionStrings
c:\Websites\BegAspNet2D
对于app.config,直接运行时会出错。但其实app.config和web.config原理是完全一样的,细心的用户可以发现app.config的说明也是web
file。

⑸ 如何对web.config进行加密和解密

你好,可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码、数据库连接字符串和加密密钥)。对配置信息进行加密后,即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。 针对asp.net 2.0的应用程序的数据库链接字符串进行加密:例如,未加密的配置文件中可能包含一个指定用于连接到数据库的连接字符串的节,如下面的示例所示: <configuration> <connectionStrings>
<add name="SampleSqlServer" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;" />
</connectionStrings>
</configuration>
ASP.NET 2.0 中有一个新的安全特性.可以对 Web.config 文件中的任何配置节进行加密处理,可以通过手工运行工具aspnet_regiis或者编程来完成这个工作。如果你可以直接访问你的Web 服务器,你可以通过运行如下的命令行: cd %windows%/Microsoft.NET/Framework/versionNumber aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" –prov -pd section
对配置节进行解密。此参数采用下面的可选参数: · -app virtualPath 指定应该在包含路径的级别进行解密。 · -location subPath 指定要解密的子目录。 · -pkm 指定应该对 Machine.config 而非 Web.config 文件进行解密。

-pdf section webApplicationDirectory
对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。

-pe section
对指定的配置节进行加密。此参数采用下面的可选修饰符: · -prov provider 指定要使用的加密提供程序。 · -app virtualPath 指定应该在包含路径的级别进行加密。 · -location subPath 指定要加密的子目录。 · -pkm 指定应该对 Machine.config 而非 Web.config 文件进行加密。

-pef section webApplicationDirectory
对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。
如果你是使用虚拟主机等不能访问物理的服务器,你仍然能够通过编程方式加密的连接字符串: 1 Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
2 ConfigurationSection section = config.Sections["connectionStrings"];
3 section.SectionInformation.ProtectSection("");;
4 config.Update ();或者 config.Save();

//加密web.Config中的指定节
private void ProtectSection(string sectionName)
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && !section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("");
config.Save();
}
}

//解密web.Config中的指定节
private void UnProtectSection(string sectionName)
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection(sectionName);
if (section != null && section.SectionInformation.IsProtected)
{
section.SectionInformation.UnprotectSection();
config.Save();
}
}

⑹ 如何加密app.config

输入如下命令进行加密:
aspnet_regiis -pef connectionStrings
c:\Websites\BegAspNet2Db解密:
aspnet_regiis -pdf connectionStrings
c:\Websites\BegAspNet2D
对于app.config,直接运行时会出错。但其实app.config和web.config原理是完全一样的,细心的用户可以发现app.config的说明也是web
file。

⑺ 如何对web.config进行加密和解密

在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址
者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连
接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通
过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符
串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。

1. 加密通用语法
加密一个特定网站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider

aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各个参数的含义如下:

section表示要加密的配置节

physical_directory用于指定站点的物理路径。

virtual_directory用户指定虚拟路径。

provider指定加密提供程序。

加密一个特定站点的连接字符串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web项目路径" -prov ""
其中是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。

2. 加密方法

运行Visual Studio 2008命令提示

加密后的结果

<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>

3. 解密
解密该连接字符串也很简单
aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"

解密后的结果:

<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>

4. 后台代码读取配置文件web.config中数据库连接字符串的方法:

using System.Configuation;

protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}


5. 在连接字符串的加密和解密的过程中,需要注意一下几点。

使用加密的连接字符串

使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。

加密和解密在同一台计算机上使用

在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。

中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。

⑻ WEB.CONFIG如何加密

WEB.CONFIG
文件不需要加密,对客户端访问本身就有安全限制,不可以下载不可以访问。
如果想防止服务器端看到,还是少往里面写系统设置信息,用数据库存储加密后的系统设置信息。

⑼ asp.net中config的connectionstrings加密怎么做

加密网站中的配置信息,我们不需要写任何代码,也不需要修改任何代码,只需要使用 aspnet_regiis 工具修改配置文件即可.
比如我们有下面一个配置文件需要加密:
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;
Integrated Security=SSPI;Initial Catalog=Northwind;" />
</connectionStrings>
</configuration>

假设这个配置文件在 MyApplication 目录下。
加密命令
aspnet_regiis -pe "connectionStrings" -app "/MyApplication"

aspnet_regiis 命令在你安装的 .net Framework 目录下, 默认在:
C:\WINDOWS\Microsoft.Net\Framework\v2.0.*

加密后的效果:
<configuration>
<connectionStrings configProtectionProvider="">
<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>0RU0XfRexc6aLFYZM+f+IWZVINqTZAAunysoVPv0dliPM72D
34MJ/gX7pzvhSJNqCLiXeyjsayse
12oAuF4rlIEraa//0QB
=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData> <CipherValue>
KmD2h7hJo2BeTIjyIOAq/2J1saLDJm
+d
zA8qEF//
ZJrjYcHIk3I27oh/XuxtSQ0VNOl
gfSsM/=
</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>

注意:为了避免一行太长,我这里把加密后信息加了几个回车符。

ASP.NET 在处理 Web.config 文件时会自动对该文件的内容进行解密。因此,
不需要任何附加步骤即可对已加密的配置设置进行解密,供其他 ASP.NET 功能使用或用于访问代码中的值。

如果你想修改这些配置信息,就需要解密这个文件,然后再加密。解密用 aspnet_regiis.exe 命令的 -pd 选项。
参考命令如下:

aspnet_regiis -pd "connectionStrings" -app "/MyApplication"

上面给的范例是 针对 IIS 的站点,如果你的站点是使用VS2005 的 ASP.net Development Server
则需要用 -pef 参数,当然 iis 站点也可以这么用

aspnet_regiis.exe -pef "connectionStrings" "D:\My2005Codes\WebTestCode\TestWEBSite"

说明:
-pef 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。
对应的这个解密则是
-pdf 参数 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。

应该是可以用的啊,你看开始菜单里面的vs2008下面有一个vs2008工具的目录,在他下面有一个vs2008命令行,用这个就可以。加密后可以直接读取程序运行时自动解密的,放心。不影响不需要运行时写另外代码解密

⑽ 如何加密C#中的Config文件

简单点的是异或加密,复杂点的就是RC4,RES加密

阅读全文

与config加密教程相关的资料

热点内容
降低php版本 浏览:57
成年二次元下载 浏览:50
设计加密文件 浏览:181
韩国电影观看网站大全 浏览:479
云服务器云计算 浏览:226
欧式古典牛奶电影 浏览:350
女主不断变美的系统文 浏览:390
python字符串比较函数 浏览:371
qq无损音乐加密版 浏览:78
mfc编程框架 浏览:167
玄幻小说txt下载完结 浏览:167
男主是条龙女主是凤凰 浏览:816
dy_new_offcial_ikkz7zdef 浏览:837
pythondataframe新加一列 浏览:775
韩国小孩子和大人电影 浏览:540
类似于情人的电影 浏览:307
韩剧女主在瑜伽房练瑜伽男主在身上看 浏览:1000
Yen算法能做什么 浏览:993
在公网如何访问家里服务器 浏览:775
php发送https请求 浏览:484