Web.config 加密及解密
2015-09-01 22:04
471 查看
Web应用通常使用web.config存储数据库连接信息及应用的一些基础配置信息。为了安全性,我们采用一些加密手段来加密一些敏感信息,比如数据库连接字符串。
.NET 自带了一个aspnet_regiis的程序,可以帮助我们实现对web.config的加密和解密。
1.加密
1)导航到aspnet_regiis.exe目录下
2)加密
-pef 代表加密,connectionStrings代表的是要加密的配置节,D:\publish代表要加密的web.config所在的目录
加密之后的connectionStrings:
有加密自然有解密,解密其实非常简单,使用如下命令即可:
说明:
1)加密后无需修改代码IIS可以直接读取配置信息。
2)从其他已加密的文件里拷贝加密字符替换未加密文件的配置节,IIS将无法正确读取配置信息。
3)aspnet_regiis.exe在使用前先确保iis已安装,并且aspnet_regiis已安装
4)确保cmd是以系统管理员身份启动,否则执行效果如下:
.NET 自带了一个aspnet_regiis的程序,可以帮助我们实现对web.config的加密和解密。
1.加密
1)导航到aspnet_regiis.exe目录下
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
2)加密
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pef "connectionStrings" "D:\publish" Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440 用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。 版权所有(C) Microsoft Corporation。保留所有权利。 正在加密配置节... 成功!
-pef 代表加密,connectionStrings代表的是要加密的配置节,D:\publish代表要加密的web.config所在的目录
加密之后的connectionStrings:
<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>FeMnXLCJptn7uRq2ZMRLRd7X2j/1sZeT99WypfKFlp2+FXe8jCUJCXlf86t/Q9R3CtnaspGiprqIMwwshZHAKo+E+6rhzlhGyLrizqLNY9kfol/ncbC+jkbX72eu6sZSE42dmsN388amxh75WS9Z/stHdg91I5Nfi6LmQUKFSfmrljEULYeyGMyKsW487jFkTvRcyApZawVlSb941hx6cfbxhlmjrIaTDKOXyiKFptiV8Qs7GsgvRL4L2wbKRUqp7k3po82l/ovVqmjv39SuMOv+ZdwCUi4ZAoQUvluX3VeIF+K2S8VK61v4sGZvCHqRZO72mQsgk/SovIRYGsxQ/Q==</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>mYKo+/TqmqRumdDTN3+zWgi+wXbBnKMowc77uE/IF2/f9ZcyjHuRRJtmIu1t/kFtX4zYON/EFf8yigDGVk4QpNblMUPTMU1CV0v8KHLvb08iZetf0ZIWpA3LB3so2npKUTl4LcXzIIIjuLhYLfxvuEJJdg0WuYyw4Yqxwn5NwuierX26gl73LCxdKUT3LMAX+OgWW2j4evhJ5YhvCLe5I8yo8xrGrpkAvUMf8YYGxWfAqyVQPklG20lFvZ0tMzGJ</CipherValue> </CipherData> </EncryptedData> </connectionStrings>加密前的连接字符串:
<connectionStrings> <add name="sqlConnStr" connectionString="server=localhost;database=HibernateDB;uid=sa;pwd=1234" providerName="System.Data.SqlClient" /> </connectionStrings>2.解密
有加密自然有解密,解密其实非常简单,使用如下命令即可:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pdf "connectionStrings" "D:\publish" Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440 用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。 版权所有(C) Microsoft Corporation。保留所有权利。 正在解密配置节... 成功!
说明:
1)加密后无需修改代码IIS可以直接读取配置信息。
2)从其他已加密的文件里拷贝加密字符替换未加密文件的配置节,IIS将无法正确读取配置信息。
3)aspnet_regiis.exe在使用前先确保iis已安装,并且aspnet_regiis已安装
4)确保cmd是以系统管理员身份启动,否则执行效果如下:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pef "connectionStrings" "D:\publish" Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440 用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。 版权所有(C) Microsoft Corporation。保留所有权利。 正在加密配置节... 执行 connectionStrings 的配置节处理程序时出错。 未能使用提供程序“RsaProtectedConfigurationProvider”加密节“connectionStrings”。提供程序返回错误消息: 对象已存在。 失败!
相关文章推荐
- HDFS简易客户端实例
- 进程间通信方式
- spring的scope讲解
- 继承、重载、多态
- 【Android应用源码分析】HandlerThread 源码分析
- html表单中get与post之间的区别
- 第一份软件测试实习(2)--需求评审会议20150826
- ZOJ2388解题报告
- 简单实用两种方法来事项我们需要的线程之间的数据交换
- 2015年夏--致1434010105班
- cookie 和session 的区别详解
- 匹配城市电话号码
- C++ 类 直接定义对象与new对象的区别
- nyoj06
- Uvalive 6424 - Russian Dolls (贪心)
- nyoj-746
- 内联函数与虚函数
- C++ 类 直接定义对象与new对象的区别
- Linux磁盘管理
- \391820794