http://blog.csdn.net/jf_jifei/article/details/6527390

在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命令提示

加密后的结果

[xhtml] view plain copy

  1. <connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
  2. <EncryptedData>
  3. <CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo+ogiigQAAAACAAAAAAADZgAAqAAAABAAAADbDjp+bAce//lsg/so66+8AAAAAASAAACgAAAAEAAAANlF3b73Kdupv/cAf4a9nPUwAQAAoTvrHdAjNjaJFEfiG7pD6sG8GMNJKGpnd4JLchu7W9XhOuPgG4C/LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/aYri1Wmlo2zyRqSkg0hQFQbObCf7lrgWEUjsv+pEOS5OVXcgNhFipVMy5iQ8sH5fNHmGg8gu5JlZQaOqYFG8ci7MGOebcQzR67krJXRBrs26lZtAj8lzf2bK+QcSqtU7Rt4C33JbLqisPL9xhfoUl9GvGTu5VS1S1H5VtErTeYXxnL7PTIr3cNjIbDMjI48LJfoOgtymT35KUdK3J0DxB68DqPaeK5QSEC/L0+6bizStRZ7BDnOngV/XfiVJnbSNYXX5IShQAAACuGn8QGUuQ4TOzkKcc891SV/CVDQ==</CipherValue>
  4. </CipherData>
  5. </EncryptedData>
  6. lt;/connectionStrings>

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

解密后的结果:

[xhtml] view plain copy

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


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

[c-sharp] view plain copy

  1. using System.Configuation;
  2. protected void Page_Load(object sender, EventArgs e)
  3. {
  4. lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
  5. }

运行效果图:

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

  • 使用加密的连接字符串

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

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

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

  • 中文路径问题

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

如何对web.config进行加密和解密相关推荐

  1. 对web.config进行加密

    我们如果想对web.config的数据库连接字符串进行加密的话,那么这里提供了两个方法. 方法一.     使用"DataProtectionConfigurationProvider&qu ...

  2. VS Web.config 密码加密加密

    ASP.NET 2.0 中有一个新的安全特性.可以对 Web.config 文件中的任何配置节进行加密处理,可以通过手工运行工具aspnet_regiis或者编程来完成这个工作.如果你可以直接访问你的 ...

  3. web.config加密解密批处理

    打开.Net Framework附带的SDK命令提示符. 加密命令: aspnet_regiis -pe "connectionStrings" -app "/encry ...

  4. PetShop 4.0知识点:加密和解密Web.config文件的配置节

    PetShop 4.0 中Web.config文件中的连接字符串是加密的,需要进行解密才能看到. 这个问题PetShop 4.0的ReadMe文件中有说明: Encrypting and Decryp ...

  5. 解决打不开 RSA 密钥容器 即:加密web.config中的内容

    简单的解决方法: WebConfig 加解密,未能使用提供程序"RsaProtectedConfigurationProvider"进行解密.提供程序返回错误消息为: 打不开 RS ...

  6. Web.config中连接字符串的加密和解密

    Web.config中连接字符串的加密和解密  我们采用命令行的方式进行加密和解密.使用ASP.NET2.0提供的命令行工具aspnet_regiis.exe,该应用程序位系统目录下Microsoft ...

  7. Web.config中连接字符串的加密和解密[转载]

    我们采用命令行的方式进行加密和解密.使用ASP.NET2.0提供的命令行工具aspnet_regiis.exe,该应用程序位系统目录下Microsoft.NET\Framework\版本号\文件夹中. ...

  8. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  9. web.config 中connectionStrings连接字符串加密、解密问题

    注意:是对虚拟目录下还是物理目录下的文件加密 加密网站中的配置信息,我们不需要写任何代码,也不需要修改任何代码,只需要使用 aspnet_regiis 工具修改配置文件即可.比如我们有下面一个配置文件 ...

最新文章

  1. 做三年地方网站不如别人打一场麻将
  2. vue判断显示隐藏_web前端进阶之【Vue】10分钟掌握Vue 在学Vue的童鞋过来拿资料
  3. raid-6磁盘阵列损坏导致数据丢失的恢复过程(图文教程)
  4. linux 6.4 能挂载最大多大硬盘,CentOS6.4的ext4文件系统如何实现挂载大于16TB的磁盘分区...
  5. postgresql 数据库
  6. JAVA WEB学习
  7. 自动登录163邮箱的批处理
  8. 全球与中国莨菪碱市场深度研究分析报告
  9. html absolute溢出,position:absolute用法(隐藏溢出部分)
  10. 安卓APP源码和设计报告——小说阅读器
  11. 公司算法面试笔试题目集锦,个人整理,不断更新中
  12. springboot集成阿里OSS上传文件
  13. 华为鸿蒙战略发布会视频,华为公布鸿蒙手机操作系统开机画面视频
  14. 软件体系结构-03-层次体系结构概述
  15. 蚂蚁金服是如何实现App端侧的极致体验的?
  16. 利用Java反射机制实现短信接口更换
  17. python 编程题 埃及金字塔罐子倒水
  18. linux 查看numa信息,Linux中查看NUMA信息
  19. 搭建关卡修、向管卡放置物体、改天空颜色
  20. 论文解读|存储集中化对多地点报童问题中预期成本的影响

热门文章

  1. 求数字序列中的第n位对应的数字
  2. leetcode85. 最大矩形
  3. 李牛(Linux)脚本
  4. 关于mysql的change和modify
  5. c++基础学习(10)--(文件、流、异常处理、动态内存、命名空间)
  6. LeetCode - Medium - 264. Ugly Number II
  7. 百度地图迁徙大数据_百度地图大数据:五一高速拥堵不似预期,广深成热门迁出入地...
  8. 密码学专题 OpenSSL专题
  9. linux多线程 pthread用法
  10. JM8.5中的7种宏块模式问题