RSAProtectedConfigurationProvider加密web.config
上一篇文章介绍了用 DataProtectionConfigurationProvider加密web.config文件的方法,不过他有一个缺陷,加密的文件只有在本机才能解密,如果有多台服务器的话,则需要每台机单独加密,因此不利于部署。
而利用RSAProtectedConfigurationProvider来加密就恰好可以解决这个问题。
本文就介绍一下如何利用RSAProtectedConfigurationProvider来部署多台服务器。
一 创建RSA 密钥
运行命令:aspnet_regiis -pc "LiuwuNetKeys" -exp
二 建立虚拟目录名称为EncryptWebConfig并添加Web.config文件如下:
| 以下为引用的内容: <configProtectedData> <providers> <add keyContainerName="LiuwuNetKeys" useMachineContainer="true" description="Liuwu.net Keys" name="LiuwuNetProvider" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </configProtectedData> <connectionStrings> <add name="Conn" connectionString="Data Source=liuwu;User ID=liuwu;Password=liuwu;" /> </connectionStrings> |
主要是在config文件中加入configProtectedData配置节。
三 加密
运行命令aspnet_regiis -pe "connectionStrings" -app "/EncryptWebConfig" -prov "LiuwuNetProvider"
其中/EncryptWebConfig是虚拟目录的名称,LiuwuNetProvider 是上一步ConfigProtectedData配置节中配置的名称
加密后的连接字符串如下:
|
以下为引用的内容: <connectionStrings configProtectionProvider="LiuwuNetProvider"> <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>RoOicEmyEeyGt216zRdwRXVaBWB2rRn+znQN59Y9/U55dEWtYdY3/HnVzIzS/BTeJ6JMOkXWLXFSjSNrA8LY22ya65r8FBI8byOCEFJ5nd1sIpnCA4Fhm72JEKhojGXo1kMURCfSQd8BdHCAJskMrsG3/bGJconC8TyyfEXTgcM=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>JTALo/rdj0zMzN2i0oFwP3wD6jQXijxpUjOc/5bBpOvP+dPQ2+rRDQXN5h+kzUWkB1vO4WSG9dDXif8Keud2QAJPU4eh4oc6pZ35sR6Ks/WzMqhnqPJi4GZ3yjodD+tuhgY2Cu94Q60R+IY4/DZ2iqrj4rNi51UCaFa7iF/CpOp6dMDkEu8ema0Asvfomj6R</CipherValue> </CipherData> </EncryptedData> </connectionStrings> |
四 分配权限
此时运行程序,可能会出现以下错误:
分析器错误消息: 未能使用提供程序“LiuwuNetProvider”进行解密。提供程序返回错误消息为: 打不开 RSA 密钥容器。
这是因为web服务器的运行帐号没有足够的权限来访问RSA容器,因此我们需要给他分配权限,在win2003的系统中,web服务器的运行帐号是NT Authority\Network Service,
运行命令:aspnet_regiis -pa "LiuwuNetKeys" "NT Authority\Network Service"
LiuwuNetKeys就是第一步创建的密钥名称
到现在程序可以正常运行了。
五 导出密钥
运行命令:aspnet_regiis -px "LiuwuNetKeys" "d:\LiuwuNetKeys.xml" -pri
LiuwuNetKeys 是第一步创建的密钥名称,这里将它导出为D盘的LiuwuNetKeys.xml文件
自此本机的操作已经完成,如果要解密,可以运行 aspnet_regiis -pd "connectionStrings" -app "/EncryptWebConfig"
六 部署到其他机器
在其他机器只要将加密后的Web.config文件拷贝过来,然后运行 aspnet_regiis -pi "LiuwuNetKeys" "d:\LiuwuNetKeys.xml" 就可以了,同样要记得分配权限。
注:这里只用了虚拟目录,其实也可以使用物理路径,具体参数可以在命令行运行 aspnet_regiis 查看具体的帮助。
http://www.veryhuo.com/a/view/9886.html
RSAProtectedConfigurationProvider加密web.config的更多相关文章
- .net加密web.config文件
这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串,之前只写了第二种方式,现在将两种方式都写出来,供大家参考.不管使用哪种方式我们在程序中都不需要写任何代码来解密连接字 ...
- DataProtectionConfigurationProvider加密web.config文件
web.config 文件中经常会包含一些敏感信息,最常见的就是数据库连接字符串了,为了防止该信息泄漏,最好是将相关内容加密. Aspnet_regiis.exe命令已经提供了加密配置文件的方法,系统 ...
- 加密web.config
当我们要进行数据库的连接时,就会根据<%$ connectionsStrings:MyConnectionStringName %>这个表达式在Web.config文件中找到和MyConn ...
- 加密Web.Config配置文件
protected void btnPassWord_Click(object sender, EventArgs e) { //加密 Configuration config = WebConfig ...
- 加密web.config中的邮件配置mailSettings
加密: 在命令提示符下键入: aspnet_regiis -pef connectionStrings 要加密的web.config完整路经 演示样例:C:\Program Files (x86)\M ...
- 加密web.config数据库连接
加密cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319aspnet_regiis.exe -pef "connectionStrings&q ...
- 加密解密技术—Web.config加密和解密
阅读目录 一:我们为什么要对web.config配置文件中的配置节加密? 二:怎么样加密和解密? 三:实例 四:运行效果 一:我们为什么要对web.config配置文件中的配置节加密? 因为在我们的项 ...
- 对web.config加密,和解密码详细说明
可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...
- web.config 加密/解密 正确版
一般加密方式: 利用Aspnet_regiis: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 aspnet_regiis -pe "co ...
随机推荐
- GCC编绎详解
http://www.cnblogs.com/lisuyun/p/4169395.html http://blog.csdn.net/kai_gai/article/details/45689247 ...
- 用windowsapi来建立一个窗口
#include <iostream> #include <Windows.h> HINSTANCE g_hInstace = ; LRESULT CALLBACK Windo ...
- material design动画
这是一篇material design 文档动画部分的学习! Summary: Material Design动画交互 动画速度的3个原则 3种交互方式 如何设计有意义的动画 使人高兴的动画细节 1 ...
- Linux系统下,启动Tomcat有时报Address already in use
一.Linux系统下,启动Tomcat有时报Address already in use<null>... 1.那是因为你的tomcat已经启动了tomcat自带的关闭脚本,有时候关闭看上 ...
- HTML5基础知识汇总_(2)自己定义属性及表单新特性
自己定义属性data-* 说起这个属性,事实上如今非经常见了;怎么说呢,由于在一些框架都能看到他的身影!!! 比方Jquery mobile,里面非常频繁的使用了这个属性; 这个属性是哪里来的-.当然 ...
- java实现归并排序算法
归并排序算法思想:分而治之(divide - conquer);每个递归过程涉及三个步骤第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素.第二, 治理: ...
- weblogic 异常 com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.次异常怎么解决
问题 更改控制台密码后,服务重启失败,无法启动,报错如下: <-- 下午03时10分49秒 CST> <Info> <WebLogicServer> <BEA ...
- Android模糊演示样例-RenderScript-附效果图与代码
本文链接 http://blog.csdn.net/xiaodongrush/article/details/31031411 參考链接 Android高级模糊技术 http://s ...
- springMVC 头像裁剪上传并等比压
第一次写头像裁剪上传,原本想着直接本地预览裁剪再上传,可是时间有限,jquery.jcrop貌似并没有对 假设是ie下图片预览效果是滤镜做的 做出对应处理,也没有时间去改;仅仅好将就一下先把图片上传 ...
- AutoCAD .NET二次开发(二)
今天专门讲一个--CommandMethod.我们都在知道CAD操作要快,必须要熟悉掌握各种命令.在Lisp开发中,在函数后C:即可添加一个命令,非常方法,在.NET API也可以非常方便的设置命令, ...