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

作者&投稿:曹阀 (若有异议请与网页底部的电邮联系)
如何对web.config进行加密和解密~

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

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

在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 "DataProtectionConfigurationProvider"
其中DataProctionConfiguartionProvider是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。

2. 加密方法

运行Visual Studio 2008命令提示

加密后的结果

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo+ogiigQAAAACAAAAAAADZgAAqAAAABAAAADbDjp+bAce//lsg/so66+8AAAAAASAAACgAAAAEAAAANlF3b73Kdupv/cAf4a9nPUwAQAAoTvrHdAjNjaJFEfiG7pD6sG8GMNJKGpnd4JLchu7W9XhOuPgG4C/LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/aYri1Wmlo2zyRqSkg0hQFQbObCf7lrgWEUjsv+pEOS5OVXcgNhFipVMy5iQ8sH5fNHmGg8gu5JlZQaOqYFG8ci7MGOebcQzR67krJXRBrs26lZtAj8lzf2bK+QcSqtU7Rt4C33JbLqisPL9xhfoUl9GvGTu5VS1S1H5VtErTeYXxnL7PTIr3cNjIbDMjI48LJfoOgtymT35KUdK3J0DxB68DqPaeK5QSEC/L0+6bizStRZ7BDnOngV/XfiVJnbSNYXX5IShQAAACuGn8QGUuQ4TOzkKcc891SV/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会自动对加密内容进行解密。

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

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

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


为什么要选择Web3?它有什么好处?
原文链接:https:\/\/medium.com\/api3\/why-web3-what-is-it-good-for-6ed1c4036220 作者:Ryan Boder 译者:iguana 翻译机构:WhaleDao Web3无疑是当前最热门,也最有争议的名词之一。与加密狂热者交谈,你会听到Web3是互联网的未来,它将把我们从垄断性技术公司和压迫性政府的桎梏中解放出来;与愤世嫉俗者交谈...

如何屏蔽web.5I0.ent 主页被恶意改成万维网www.u7788.com,请问如何彻底...
4.如果这些操作仍不能帮助你完成浏览器修复,不妨试一下在控制面板中操作重置IE选项或调整IE安全级别。操作步骤:依次点击,控制面板->网络和internet连接->internet选项,或者在IE工具菜单选择internet选项。在程序标签页,点击重置web设置。对于Win7系统,界面交互调整了一下位置,同样从控制面板里打开IE...

在互联网中,什么是Web1.0及Web2.0时代及各自的特点
Web2.0携带的大趋势不可逆转,Technorati和Daypop等博客搜索网站也已出现,它们又一次把无序变为了有序,互联网因此正经历一次新秩序的建立。参考资料:http:\/\/www.promees.com\/web\/2005-9-13\/news2005913102255.htm

webqq怎么用?
WebQQ(网页QQ)是一种在网页上使用的QQ客户端,无需安装任何软件,只需要在浏览器中打开相应的网页即可使用。以下是使用WebQQ的基本步骤:打开WebQQ网站:在浏览器的地址栏中输入WebQQ的网址(如webqq.qq.com),或者直接在搜索引擎中搜索“WebQQ”,从搜索结果中找到官方网站点击进入。登录:在WebQQ...

网页Web设计流程
在未来,Web设计师们仍将会继续被要求给页面增加更丰富的多媒体内容,从而为Web站点的可视性和可操作性增加了新一级的复杂性和技术要求。作为CD-ROM\/多媒体设计师,要求我必须具有图形设计、视频、音频制作、动画等方面的知识和创作能力。我的预言是,Web设计师也将向这些领域发展。 对于属于microsoft.com的我们--以及...

net , web字典解释都是网,有什么区别?
web 是蜘蛛网。net 是线织的网,例如渔网。在计算机领域,web指 WWW 网站(集合体) ,net 指 计算机通讯网,例如互联网。

一个WEB网游的运营该怎么做呢
这种割断对于游戏运营公司来说非常难受,因为无法更进一步追踪了解这些“在线用户”们到底是怎么样的人,难以对这些用户进行准确判断,更惶论根据准确判断而进行运营策略上的有的放矢。 Web2.0的技术很容易构筑起一个良好的互动社区,由于用户的主动参与,用户会较少排斥关于涉及个人信息的内容,这将是游戏运营公司们乐于看到...

web2.0社区是什么啊?
对于Web 2.0来说,如何帮助用户管理、维护、存储、分享、转移微内容,就成了关键。 用户个体。对于Web 1.0的典型产品\/服务来说,用户没有具体的面貌、个性,它只是一个模糊的群体的代名词而已。但是对于Web2.0的产品和服务来说,用户是个实实在在的人。Web 2.0所服务的,是具体的人,而不是一个如同幽灵般的概念。

简述一下IP地址域名和web地址之间的联系与区别
它的“IP”也是“220.181.43.124”,这就和网站的制作过程有关了。“zhidao.baidu.com”后面跟着的那一串符号就是用来标识这个页面相对于“百度知道”主页的位置的,也是给计算机来识别的,对我们人类来说,要记住后面那么一串字符的话我不反对,但是我会认为你是吃多了。OK,应该理解了吧!

如何建立一个web网站?请各位大虾帮帮忙啊.介绍一两本电子书什么的.谢谢...
http:\/\/tech.163.com\/special\/w\/000915SQ\/webmediatech.html 3.如果会做了,申请免费主页空间,如果自己有更好了,(注:主机是空间)没有请去这里找一个适合自己的申请,免费。 http:\/\/www.14567.com 4.把做好的主页上传到您的空间。需要FTP上传软件。 下载地址: http:\/\/www.14567.com\/ftp.html 5.用您...

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

牟定县19862533542: 如何对web.config进行加密和解密 -
车录昔舒: 加密一个特定网站的web.config文件的通用形式 aspnet_regiis.exe -pef secion physical_directory -prov provider 或 aspnet_regiis.exe -pe secion -app virtual_directory -prov provider 其中,各个参数的含义如下: section表示要加密的配置节 ...

牟定县19862533542: web.config的字符串加密是怎么做的 -
车录昔舒: 一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式. 1)概述: Web.Config 中可以存储数据库连接语句,通常存于 配置节中,程序调用非常方便,但是在系统的应用过程中,利用明文存储这些敏感信息是不安全的,这就需...

牟定县19862533542: 如何在VisualStudio2005的Web config文件中对数据库连接字符串进行加密? -
车录昔舒: 配置文件的加密可以用.NET自带的进行加密. 当然,如果不在配置文件中加密也有办法,比如你可以封装到你的DLL里面.

牟定县19862533542: 怎样给Ture Type字体加密?(英文字体)啊
车录昔舒: 在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp 其中"hnlaw"为密钥名称 2.添加...

牟定县19862533542: 如何在web.config中设置后台密码(详细一点)
车录昔舒: <add name="sqlserver" connectionString="user id=登陆数据库的账户名称;password=登陆账户密码;database=数据库名称;server=数据库地址(IP)" providerName="System.Data.SqlClient"/> 就是那么简单了~

牟定县19862533542: 怎样在web.config文件中配置连接字符串 -
车录昔舒: System.Configuration.ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString.ToString(); 这就等于"server=.\SQL2005;uid=sa;pwd=;database=PrettyWeb",

牟定县19862533542: IIS7.5有哪些配置备份方法 -
车录昔舒: 首先我们打开服务器管理器,一般服务器都在左下角的任务栏中,直接点击即可打开2 打开WEB服务器(IIS),选择IIS根目录,找到右边的共享管理3 打开共享管理后,我们在右侧的操作中找到导出配置,选择物理路径,输入加密秘钥,点击确定即可把IIS的配置导出到我们指定的路径.END IIS7配置还原 其实配置还原和备份的步骤基本相同,同样找到共享管理 打开共享管理,勾选启用共享的配置,然后在下面选择我们保存配置文件的路径,及用户名密码,然后点击右侧的应用即可还原我们的配置3 打开IIS,看看是不是所有配置都还原成功了

牟定县19862533542: .NET 2.0 里自动生成的web.config 文件里没有machineKey ,要不要自己设置一个? -
车录昔舒: web.config用来储存 asp.net web 应用程序的配置信息,当你通过.net新建一个web应用程序后,默认情况下会在根目录自动创建一个默认的web.config文件,也可以重写或修改父目录中定义的设置.常用配置有数据连接字符串等.

牟定县19862533542: FormsAuthentication这个类是怎么用的?
车录昔舒: 这个函数可以对明码进行加密 怎么跟web.config配合? 这个就是说有时候可能你要在web.config中存储一些敏感信息,就可以使用这个加密 http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthentication(VS.80).aspx http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(VS.80).aspx

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网