zoukankan
html css js c++ java
web.config的话题 [加密和解密]
为什么要对web.config进行加密?
先谈为什么?原因其实就是基于安全方面的考虑
简单的说,在asp.net中,加密web.config可以有效的保证数据库用户和密码安全,以及其他重要配置信息的安全。
复杂的说,在asp.net中,可以使用受保护配置来加密web.config中的敏感信息(如用户名,密码,数据库连接字符串和加密密钥,etc)
对配置信息进行加密后,即使功击都获取了对配置文件的访问,也可以使功击者难以获取对敏感信息的访问,从而改进应用程序的安全性。
如何加密web.config呢?
(以下只是演示,具体项目具体操作)
1. 新建一个website或者webapplication project (E:\Enconfig\WebApplication1)
2. 在web.config中新增一个
<
connectionStrings
>
<
add
name
="SqlServices"
connectionString
="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
/>
</
connectionStrings
>
3. 针对connectionStrings进行加密,如下:
使用命令行工具regaspnet_iis
(有关于Framework的版本号是自行选定的,我们这里选择v2.0.50727这个文件夹)
Cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Aspnet_regiis -pe "connectionStrings" -app "/EnConfig/WebApplication1"
这里如果直接执行的话,会报错的,错误信息如下:
Encrypting configuration section
A configuration file cannot be created for the requested Configuration object.
Failed!
那怎么解决呢,也是很简单
只需要把E:\Enconfig的这个文件夹的属性设置一下web共享即可。
具体见图:(图1)
这样的话,对web.config中的ConectionString就加密好了
那如何解密呢?
*其实ASP.NET 在处理 Web.config 文件时会自动对该文件的内容进行解密。
因此,不需要任何附加步骤即可对已加密的配置设置进行解密,供其他 ASP.NET 功能使用或用于访问代码中的值。
程序中直接使用
ConfigurationManager.ConnectionStrings就可以获取你想要的配置项和值等等,大家自己Qucik Watch一下,自己看一下吧。这样就多说了。
只需要把-pe参数修改为-pd,就可以了。具体操作如下:
aspnet_regiis -pd "connectionStrings" -app "/EnConfig\WebApplication1"
操作成功信息:
Decrypting configuration section
Succeeded!
图1:设置web共享
以下是加密后的ConnectionString:
<
connectionStrings
configProtectionProvider
="RsaProtectedConfigurationProvider"
>
<
EncryptedData
Type
="http://www.w3.org/2001/04/xmlenc#Element"
xmlns
="http://www.w3.org/2001/04/xmlenc#"
>
<
EncryptionMethod
Algorithm
="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"
/>
<
KeyInfo
xmlns
="http://www.w3.org/2000/09/xmldsig#"
>
<
EncryptedKey
xmlns
="http://www.w3.org/2001/04/xmlenc#"
>
<
EncryptionMethod
Algorithm
="http://www.w3.org/2001/04/xmlenc#rsa-1_5"
/>
<
KeyInfo
xmlns
="http://www.w3.org/2000/09/xmldsig#"
>
<
KeyName
>
Rsa Key
</
KeyName
>
</
KeyInfo
>
<
CipherData
>
<
CipherValue
>
lDEPz9sfUaFP26qIsQC3wZd43xr/NOjE3CxcMitgKnnNoa9tLUUjSJVfsvBRnXyGHyKJ0+kIsGssiXfpDPM63cJkwDoZHVnRRYGp5vD3SWM2JZ3SGD3iKjRtnJpMYcqzOONkN61moPbhWW6szd85pNZzMxjEWQdHElC2W6wg520=
</
CipherValue
>
</
CipherData
>
</
EncryptedKey
>
</
KeyInfo
>
<
CipherData
>
<
CipherValue
>
bqKAbnOfFUUEUvbF4bfDeP5HNeW6EfH0A0H2nw4u/6knmeBqzaTFGxpxtMpcs1qQQGm2eJ4BajZpxhrIocOlo3J6ACr36OL/6EMlgkn5KdOb+WbceYMLXa96hoR8bXXVJDu11UoGBKGSdyGKTodE4zPHivXxwoY+TaDnB4FVy+ddSJrWmJCPRIXFcCPHO03l/bywpPDCyrrPZwCZI5Xqlq9z/Q99AtA8FwQY5BmVPvw=
</
CipherValue
>
</
CipherData
>
</
EncryptedData
>
</
connectionStrings
>
图3:aspnet自动解密
查看全文
相关阅读:
Hdu-5983 2016ACM/ICPC亚洲区青岛站 B.Pocket Cube 模拟
Codeforces Round #300 F
cf298F:状压dp+剪枝
POJ3294--Life Forms 后缀数组+二分答案 大于k个字符串的最长公共子串
jzp线性筛及其简单应用
Codeforces Round #299 (Div. 1)C. Tavas and Pashmaks (凸壳)
Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)
【2012天津区域赛】部分题解 hdu4431—4441
HDU4436---str2int 后缀树组(12年天津区域赛)
Codeforces
原文地址:https://www.cnblogs.com/RuiLei/p/868450.html
最新文章
Vue框架- 指令操作
统计元素出现频率
命名
列表/字典/集合数据筛选
Random
ffmpeg Windows10下的安装及使用
中值滤波(椒盐)
高斯均值滤波(椒盐)
双边滤波(磨皮美白)
亮度增强
热门文章
彩色直方图均衡化(源码实现)
Hdu-6243 2017CCPC-Final A.Dogs and Cages 数学
Hdu-6252 2017CCPC-Final J.Subway Chasing 差分约束
Hdu-6230 2017CCPC-哈尔滨站 A.Palindrome Manacher 主席树
Hdu-6242 2017CCPC-哈尔滨站 M.Geometry Problem 计算几何 随机
Gym-101915D Largest Group 最大独立集 Or 状态压缩DP
Gym-101915C Shahhoud Training Hussain 模拟
Gym-101915A Printing Books 模拟
2017ACM/ICPC亚洲区沈阳站 C Hdu-6219 Empty Convex Polygons 计算几何 最大空凸包
Hdu-5992 2016ACM/ICPC亚洲区青岛站 K.Finding Hotels KDtree
Copyright © 2011-2022 走看看