欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

web.config .net中数据库连接字符串加密解密

程序员文章站 2022-09-19 17:28:10
 .net中,我们一般把数据库连接字符串写在web.config这个文件里,因为如果直接写在类里,到网站发布,我们一般会把部署好的网站给客户(页面文件和dll文件),没有代码文件(c...

 .net中,我们一般把数据库连接字符串写在web.config这个文件里,因为如果直接写在类里,到网站发布,我们一般会把部署好的网站给客户(页面文件和dll文件),没有代码文件(cs文件),如果我们把连接字符串写代码里,那很显然不方便,但也有的人会把连接字符串放那里,所以我们提权的时候有的时候在web.config里根本没发现数据库连接信息

          但如果我们把他放在web.config里,是以明文显示的,不安全,所以.net为我们提供了加密工具,

          加密方法
aspnet_regiis.exe -pef "web.config里的配置节" "项目路径" -prov "DataProtectionConfigurationProvider"

          解密方法
aspnet_regiis.exe -pdf "web.config里的配置节" "项目路径" -prov "DataProtectionConfigurationProvider"
更详细的参数信息自己看帮助


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

例子

未加密时web.config

web.config .net中数据库连接字符串加密解密

加密语句
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regiis.exe -pef   "connectionStrings"   "项目路径" -prov "DataProtectionConfigurationProvider"

如图
web.config .net中数据库连接字符串加密解密

加密后web.config
web.config .net中数据库连接字符串加密解密

解密语句
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regiis.exe -pdf "connectionStrings" "项目路径"
解密过程
web.config .net中数据库连接字符串加密解密
==========================================================================

有几点要注意下


1. 加密和解密一定要在同一台计算机,所以如果我们用这个加密下,在webshell里别人是搞出不出什么东西来(当然,如果webshell权限是系统权限就不一样了)

2.我们加密连接字符串后,使用不用我们自己去解密,.net会自动解密

3.对中文支持不是很好,如果站点的路径有中文,可能不能正常解密