怎么对数据库连接字符串进行加密和解密?
展开全部
楼主是想在WEB.CONFIG文件中加密数据库联接字符串吧? web.config中加密连接字符串 旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和
用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是
站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。
ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET
2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找
到被界定的区域(如果不存在,可自行添加)并在标记中输入如下代码。该标记有三个属性:name、
connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。
connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。 e.g. http://schemas.microsoft.com/.NetConfiguration/v2.0">
通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加密必须
由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\
v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:
aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db
加密连接字符串的命令行工具还可以使用虚拟路径语
法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示: aspnet_regiis –pe
connectionStrings –app /BegAspNet2Db
一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进
行一些更改,例如修改密码,则可以手动输入以下代码来解密。 aspnet_regiis –pdf connectionStrings
c:\Websites\BegAspNet2Db 请注意,在默认情况下,加密过程使用了一个基于加密算法执
行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至
另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。
PS:petshop4.0安装的时候如果选择 “Full
Install”,那么配置文件默认就加密了,这也是我一开始怎么也找不到连接字符串,然后用windows集成验证怎么也登不上去的原因。
后来发现在安装目录下有两个批处理文件:
1、加密EncryptWebConfig.bat @echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef
"connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE 2、解密DecryptWebConfig.bat @echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf
"connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE 加黑的就是两个文件的区别。
用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是
站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。
ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET
2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找
到被界定的区域(如果不存在,可自行添加)并在标记中输入如下代码。该标记有三个属性:name、
connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。
connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。 e.g. http://schemas.microsoft.com/.NetConfiguration/v2.0">
通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加密必须
由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\
v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:
aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db
加密连接字符串的命令行工具还可以使用虚拟路径语
法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示: aspnet_regiis –pe
connectionStrings –app /BegAspNet2Db
一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进
行一些更改,例如修改密码,则可以手动输入以下代码来解密。 aspnet_regiis –pdf connectionStrings
c:\Websites\BegAspNet2Db 请注意,在默认情况下,加密过程使用了一个基于加密算法执
行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至
另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。
PS:petshop4.0安装的时候如果选择 “Full
Install”,那么配置文件默认就加密了,这也是我一开始怎么也找不到连接字符串,然后用windows集成验证怎么也登不上去的原因。
后来发现在安装目录下有两个批处理文件:
1、加密EncryptWebConfig.bat @echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef
"connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE 2、解密DecryptWebConfig.bat @echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf
"connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE 加黑的就是两个文件的区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询