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

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. …  
  3. protected void Page_Load(object sender, EventArgs e)  
  4. {  
  5.     lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();  
  6. }  
  7. … 

运行效果图:

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

  •      使用加密的连接字符串

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

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

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

  •      中文路径问题

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 爬虫_Java原生代码实现爬虫(爬取小说)

Java也能做爬虫。现在提到爬虫人第一个想到的就是python&#xff0c;其实使用Java编写爬虫也是很好的选择&#xff0c;Java成熟的爬虫框架很多&#xff0c;下面给大家展示一个使用Java基础语言编写的爬取小说的案例&#xff1a;实现功能&#xff1a;爬取目标网站全本小说代码编…

JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]...

Location对象 location用于获取或设置窗体的URL&#xff0c;并且可以用于解析URL。 语法: location.[属性|方法] location对象属性图示: location 对象属性&#xff1a; location 对象方法: 任务 在右边编辑器script标签内&#xff0c;获取当前显示文档的URL,并输出。 <!DOC…

ansible inventory 主机清单配置

文章目录 环境介绍 ansible ssh配置 操作测试/etc/hosts 配置Inventory文件 主机与组主机变量、组变量把一个组变成另一个组的子成员变量太多了&#xff0c;不好管理怎么办&#xff1f;来&#xff0c;分文件定义主机变量和组变量 操作环境介绍 为了练习方便&#xff0c;本次使…

python(26)查看文件的大小

有时候&#xff0c;在写文件的时候需要判断文件的大小&#xff0c;或者删除空的文件 import os from os.path import join, getsizedef getdirsize(dir):size 0Lfor root, dirs, files in os.walk(dir):print filesfor name in files:print nameprint join(root,name) #输出文…

java 数据结构_Java版-数据结构-队列(数组队列)

前言看过笔者前两篇介绍的 Java版数据结构 数组和 栈的盆友&#xff0c;都给予了笔者一致的好评&#xff0c;在这里笔者感谢大家的认可&#xff01;&#xff01;&#xff01;由于本章介绍的数据结构是 队列&#xff0c;在队列的实现上会基于前面写的 动态数组来实现&#xff0c…

ssh 介绍 和使用 程序不挂起

目录 SSH的安全机制 SSH的安装 启动服务器的SSH服务 SSH两种级别的远程登录 SSH的高级应用 Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行…

corpus  academic writing

http://micusp.elicorpora.info/ http://corpus.byu.edu/coca/ http://rcpce.engl.polyu.edu.hk/RACorpus/转载于:https://www.cnblogs.com/gisalameda/p/5590034.html

vim命令练习题。

练习题。1. vi 与 vim 有什么区别呢&#xff0c;它们之间有什么关系&#xff1f;答&#xff1a;vi 和vim最大的区别就是编辑一个文本时&#xff0c;vi不会显示颜色&#xff0c;而vim会显示颜色。显示颜色更易于用户进行编辑。vim的这些优势主要体现在以下几个方面&#xff1a;1…

java 四舍五入_Java常用类

每个人的心里&#xff0c;都藏着一个了不起的自己&#xff0c;只要你不颓废&#xff0c;不消极&#xff0c;一直悄悄酝酿着乐观&#xff0c;培养着豁达&#xff0c;坚持着善良&#xff0c;只要在路上&#xff0c;就没有到达不了的远方&#xff01;BigInteger在Java中&#xff0…

Sublime 插件- px 转rem

一个CSS的px值转rem值的Sublime Text 3自动完成插件。 插件效果如下&#xff1a; 安装 克隆项目 https://github.com/hyb628/cssrem.git进入packages目录&#xff1a;Sublime Text -> Preferences -> Browse Packages...复制下载的cssrem目录到刚才的packges目录里。重…

ansible 批量部署ssh免密钥

1 创建ssh秘钥 yum install epel-release -y yum install sshpass -y ssh-keygen -t rsa 2 批量复制秘钥并授权 ansible web -m shell -a ‘mkdir ~/.ssh’ -k ansible web -m copy -a ‘src~/.ssh/id_rsa.pub dest~/.ssh/authorized_keys mode0600’ -k 3 测试 ssh 10.0.0.2…

window8下安装RabbitMQ

2019独角兽企业重金招聘Python工程师标准>>> 1.下载并安装erlang&#xff0c;http://www.erlang.org/download.html。64位的下载的是otp_win64_19.1.exe 查看是否安装成功&#xff1a; 2.下载RabbitMQ,最新版是2.8.1&#xff0c;http://www.rabbitmq.com/releases/r…

python如何避免转义字符_如何解决因转义字符而报错的问题(在使用python导入文件时)...

有些萌新在初次使用python导入文件时&#xff0c;可能会遇到遇到各种各样的报错。今天我们就来讲讲其中最常见的一种报错---转义字符“\”冲突。问题重述&#xff1a;比如像下面这样&#xff0c;当我们想导入一个常见的csv文件时&#xff0c;发现居然报了这样一个错误&#xff…

同意条款按钮可用

// 同意条款function isaccepted(){ if(document.getElementById("read").checkedtrue){ document.getElementById("submit").disabled false; $(#submit).css("background","#f25618"); }else{ document.getElementById("s…

Ansible执行过程分析、异步模式和速度优化

Ansible系列(七)&#xff1a;执行过程分析、异步模式和速度优化 分类: Linux服务篇 undefined 我写了更完善的Ansible专栏文章&#xff1a;一步到位玩儿透Ansible Ansible系列文章&#xff1a;http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.1 ansible执行过程分析 …

gdb 收到SIGPIPE信号

2019独角兽企业重金招聘Python工程师标准>>> handle SIGPIPE noprint nostop 转载于:https://my.oschina.net/u/1176097/blog/761957

列的数目比列的名字要多_你们要的甘特图来啦!还有具体做法哦!

作为项目的负责人&#xff0c;“时间管理”也是极为重要的一环。甘特图作为常用的项目管理工具之一&#xff0c;有助于把一个大型项目划分为几个小部分&#xff0c;并有条理地展示。甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。以提出者亨利劳伦斯甘特(Henry Laurenc…

图片处理拓展篇 : 图片转字符画(ascii)

首先要明确思路, 图片是由像素组成的, 不同的像素有不同的颜色(rgb), 那么既然我们要转化为字符画, 最直接的办法就是利用字符串来替代像素, 也就是用不同的字符串来代表不同的像素. 另外图片一般来讲是彩色的, 而acsii(一般打印在终端上吧) 都是黑白的, 此时就要介绍另外一个概…

使用fping 查看局域网中有哪些ip

安装 fping arp-get install fping 使用方法 fping -g 自己ip地址/24 使用 nmap 也可以查看 但是速度慢些 nmap 功能比fping 功能强大 nmap -sP 自己ip地址/24

算法题:判断字符串是否为 ipv4 地址

#include <stdio.h>typedef char bool; #define true 1 #define false 0/**1.判断字符串是否形如“192.168.1.1”2.字符串两端含有空格视为合法ip&#xff0c;形如“ 192.168.1.1 ”3.字符串中间含有空格视为非法ip&#xff0c;形如“192.168. 1.2”4.字符串0开头视…