如何对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 "DataProtectionConfigurationProvider"
其中DataProctionConfiguartionProvider是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。
2. 加密方法
运行Visual Studio 2008命令提示
加密后的结果
AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo+ogiigQAAAACAAAAAAADZgAAqAAAABAAAADbDjp+bAce//lsg/so66+8AAAAAASAAACgAAAAEAAAANlF3b73Kdupv/cAf4a9nPUwAQAAoTvrHdAjNjaJFEfiG7pD6sG8GMNJKGpnd4JLchu7W9XhOuPgG4C/LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/aYri1Wmlo2zyRqSkg0hQFQbObCf7lrgWEUjsv+pEOS5OVXcgNhFipVMy5iQ8sH5fNHmGg8gu5JlZQaOqYFG8ci7MGOebcQzR67krJXRBrs26lZtAj8lzf2bK+QcSqtU7Rt4C33JbLqisPL9xhfoUl9GvGTu5VS1S1H5VtErTeYXxnL7PTIr3cNjIbDMjI48LJfoOgtymT35KUdK3J0DxB68DqPaeK5QSEC/L0+6bizStRZ7BDnOngV/XfiVJnbSNYXX5IShQAAACuGn8QGUuQ4TOzkKcc891SV/CVDQ==
lt;/connectionStrings>
3. 解密
解密该连接字符串也很简单
aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"
解密后的结果:
4. 后台代码读取配置文件web.config中数据库连接字符串的方法:
using System.Configuation;
…
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}
…
5. 在连接字符串的加密和解密的过程中,需要注意一下几点。
使用加密的连接字符串
使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。
加密和解密在同一台计算机上使用
在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。
中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。
在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或 者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到
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命令提示
加密后的结果
[xhtml] view plain copy
<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项目路径"
解密后的结果:
[xhtml] view plain copy
<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>
4. 后台代码读取配置文件web.config中数据库连接字符串的方法:
[c-sharp] view plain copy
using System.Configuation;
…
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}
…
5. 在连接字符串的加密和解密的过程中,需要注意一下几点。
使用加密的连接字符串
使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。
加密和解密在同一台计算机上使用
在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。
中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。
每次打开一个网页,http:\/\/www.newweb.com.cn\/就跟着自动打开,如何屏蔽...
使用方法:http:\/\/news.onlinedown.net\/info\/9986-1.htm 下载:http:\/\/download.enet.com.cn\/html\/013612004112401.html 4.对于单一的弹出网站(网页),你可以试试下面的方法:找到(复制)它的地址。然后在IE里通过:工具--Internet选项--安全,点击“请为不同区域的Web内容指定安全设置”下的“...
什么是WEB网站网址?
网址通常指因特网上网页的地址。企事业单位或个人通过技术处理,将一些信息以逐页的方式储存在因特网上,每一页都有一个相应的地址,以便其他用户访询而获取信息资料,这样的地址叫做网址。网址在因特网中,如果要从一台计算机访问网上另一台计算机,就必须知道对方的网址。这里所说的网址实际上指两个...
WEB浏览器是什么?
浏览器是用来检索、展示以及传递Web信息资源的应用程序。Web信息资源由统一资源标识符( Uniform Resource Identifier,URI)所标记,它是一张网页、一张图片、一段视频或者任何在Web上所呈现的内容。使用者可以借助超级链接( Hyperlinks),通过浏览器浏览互相关联的信息 ...
什么是WEB?
总之,Web2.0是以 Flickr、Craigslist、Linkedin、Tribes、Ryze、 Friendster、Del.icio.us、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、wiki等应用为核心,依据六度分隔、xml、ajax等新理论和技术实现的互联网新一代模式。 应用: 1、 Blog(from wiki) 历史: Blog一词本起源于 weblog,意思是网上日志。1997年...
请问什么是web服务器 WEB网站服务器和应用服务器有什么区别
目前最主流的三个Web服务器是Apache Nginx IIS。【web 容器】 何为容器:容器是一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用。在 J2EE 规范中,相应的有 WEB Container 和 EJB Container 等。WEB 容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,...
web、wap、www有什么区别?
http:\/\/baike.baidu.com\/view\/7319.htm www:万维网(亦作“网络”、“WWW”、“W3”,英文“Web”或“World Wide Web”),是一个资料空间。在这个空间中:一样有用的事物,称为一样“资源”;并且由一个全域“统一资源标识符”(URL)标识。这些资源通过超文本传输协议(Hypertext Transfer ...
如何给网站取一个好的域名 网站域名取名技巧【详解】-搜狗输入法_百度...
域名,是人们进入互联网时对其相应网站的第一印象。如果别人看到您的域名就会联想到这是一个什么样的网站、突出的主题、所在的行业和地区;第一步便是成功的。如果该域名更具有简洁、明了、好记、含义深刻的特点,可以肯定这必是一个好的域名。如英文名的cool.com 、Loans.com 、Autos.com、web.com、Business.com...
Web3.0是什么意思 Web3.0是一个必然的趋势吗
Web3.0在互联网中经常被提及,对于Web3.0的定义有很多,是关乎未来的互联网技术发展,那么,Web3.0是什么意思?Web3.0是一个必然的趋势吗?下面canyinms.com小编就带来介绍。Web3.0是什么意思 网易区块链事业部总经理顾费勇给出了一种广为认可的定义:Web3.0是以区块链等技术为核心的下一代...
网址前的3个w表示什么意思?还有com与cn分别表示什么意思?
com是company公司的缩写,cn是china的缩写 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 celiagreen 2008-12-27 · TA获得超过130个赞 知道答主 回答量:64 采纳率:0% 帮助的人:0 我也去答题访问个人页 关注 展开全部 www:万维网World Wide Webcom:companycn:China 已赞过 已踩过...
百度hi网页版怎么登陆?
百度hi网页版登陆方法 方法(一)1、首先,进入百度首页,点击右上角的登陆,账号登陆。 2、在相关作者资料处,看到的是离线留言状态。(小编此处以经验作者为举例) 方法(二)1、进入到百度HI的主页。选择“启用网页版百度HI” 2、打开一个百度HI的交流窗口,此时关闭所有浏览器。3、...
漆才安谱: WEB.CONFIG 文件不需要加密,对客户端访问本身就有安全限制,不可以下载不可以访问. 如果想防止服务器端看到,还是少往里面写系统设置信息,用数据库存储加密后的系统设置信息.
福州市17717001004: 如何对web.config进行加密和解密 - ?
漆才安谱: 加密一个特定网站的web.config文件的通用形式 aspnet_regiis.exe -pef secion physical_directory -prov provider 或 aspnet_regiis.exe -pe secion -app virtual_directory -prov provider 其中,各个参数的含义如下: section表示要加密的配置节 ...
福州市17717001004: web.config的字符串加密是怎么做的 - ?
漆才安谱: 一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式. 1)概述: Web.Config 中可以存储数据库连接语句,通常存于 配置节中,程序调用非常方便,但是在系统的应用过程中,利用明文存储这些敏感信息是不安全的,这就需...
福州市17717001004: 如何在VisualStudio2005的Web config文件中对数据库连接字符串进行加密? - ?
漆才安谱: 配置文件的加密可以用.NET自带的进行加密. 当然,如果不在配置文件中加密也有办法,比如你可以封装到你的DLL里面.
福州市17717001004: 怎样给Ture Type字体加密?(英文字体)啊?
漆才安谱: 在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp 其中"hnlaw"为密钥名称 2.添加...
福州市17717001004: 如何在web.config中设置后台密码(详细一点)?
漆才安谱: <add name="sqlserver" connectionString="user id=登陆数据库的账户名称;password=登陆账户密码;database=数据库名称;server=数据库地址(IP)" providerName="System.Data.SqlClient"/> 就是那么简单了~
福州市17717001004: 怎样在web.config文件中配置连接字符串 - ?
漆才安谱: System.Configuration.ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString.ToString(); 这就等于"server=.\SQL2005;uid=sa;pwd=;database=PrettyWeb",
福州市17717001004: 如何把EntityFrameWork 的连接字符串配置到WebConfig 中 - ?
漆才安谱: 一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式. 1)概述: Web.Config 中可以存储数据库连接语句,通常存于 配置节中,程序调用非常方便,但是在系统的应用过程中,利用明文存储这些敏感信息是不安全的,这就需...
福州市17717001004: 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
福州市17717001004: 怎么解密Web.config里面的IP和密码?
漆才安谱: web.config的加密一般是在某台电脑上面进行的,只有在那台电脑上面才可以解密.. 你可以搜下 web.config的加密与解密