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 ...
随机推荐
- opensuse搜狐镜像
openSUSE-13.1-Update-sohu-mirror http://mirrors.sohu.com/opensuse/update/13.1/ openSUSE-13.1-Oss-soh ...
- golang slice 切片原理
golang 中的 slice 非常强大,让数组操作非常方便高效.在开发中不定长度表示的数组全部都是 slice .但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果 ...
- laravel的 array 函数
代码如下: routes.php文件 // 获⃣取⃣数⃣组⃣的⃣第⃣一⃣个⃣ Route::get('/helper', function () { $arr = [1, 2, 4]; return ...
- Unity-EasyTouch插件之Two Finger
今天,我们来学习下多手指触摸屏幕的事件,分别有挤压(缩放),挤压(旋转) 挤压(缩放): 在easytouch中,双手指挤压缩放的英文为Pinch 好了今天我们的测试是双手指挤压对物体进行缩放.我们测 ...
- 花间美人:古风 CG插画技法
<花间美人:古风 CG插画技法> 基本信息 作者: 猫君大白 出版社:机械工业出版社 ISBN:9787111429432 上架时间:2013-7-3 出版日期:2013 年7月 开 ...
- Idea 创建spring mvc项目时,在add framework support中找不到spring选项
每次创建spring项目最头疼就是spring的配置文件,尤其是配置头信息.通过IDEA工具可以很好辅助完整这些工作. 先说下这个选项的作用:其作用就是利用IDEA自身提供的功能帮你完成一些sprin ...
- Xilinx Spartan6常用资源Verilog例化
// DSP48A1 : In order to incorporate this function into the design, // Verilog : the following insta ...
- 【C#】:浅谈反射机制 【转】
http://blog.csdn.net/lianjiangwei/article/details/47207875 什么是反射? 反射提供了封装程序集.模块和类型的对象(Type 类型).可以使用反 ...
- JavaWeb对RSA的使用
由于公司的网站页面的表单提交是明文的post,虽说是https的页面,但还是有点隐患(https会不会被黑?反正明文逼格是差了点你得承认啊),所以上头吩咐我弄个RSA加密,客户端JS加密,然后服务器J ...
- mac软件下载
mac软件下载 http://www.pc6.com/mac/ https://www.macx.cn/