app.config 加密后无法在另一台电脑上使用

zhangping321_123 2014-07-07 02:47:27
别写一些命令行之类的,也别copy一些没有的来这里表达。部署上面可没有Vis Studio的命令行
提出这个问题就是为了解决,本机加密后的应用程序,在部署电脑上怎么读取加密文件。



...全文
259 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangping321_123 2014-07-11
  • 打赏
  • 举报
回复
最后自己写了个算法,实现了,分数大家分下吧
tinydyw 2014-07-07
  • 打赏
  • 举报
回复
加密算法网上都能找到很多..关键是你为什么要加密..比如网络传输加密是为了防止被拦截后读取到数据.那么这种时候就有必要采取一些复杂的算法,因为被拦截后数据你就无法再控制了..但是如果单纯是为了防止别人拿到数据后攻击你的主机..那么你只用自己在主机上做好认证就行了.. 而加密配置文件..是为了防破解么= =..我觉得如果是这样不如在里面加入一些内部人员才懂的字符作为密匙更简单实用一些..
xdashewan 2014-07-07
  • 打赏
  • 举报
回复
引用 16 楼 zhangping321_123 的回复:
我比较笨,加密模式设为cbc,是什么意思?
我是说并不需要自己写算法,用微软提供的加解密类就可以做,不是指RsaProtectedConfigurationProvider可以用cbc模式
by_封爱 版主 2014-07-07
  • 打赏
  • 举报
回复
我这一般都自己写des加密解密就好了...
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 13 楼 xdashewan 的回复:
[quote=引用 11 楼 zhangping321_123 的回复:] 也就是说,想要实现电脑间加密文件通用,必须自己写加密算法?
加密模式设为cbc,别说跨机器,还能跨平台[/quote] 我比较笨,加密模式设为cbc,是什么意思?
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 14 楼 tinydyw 的回复:
[quote=引用 11 楼 zhangping321_123 的回复:] [quote=引用 8 楼 tinydyw 的回复:] 微软官方提供的config加密只能本机解密..所以...没办法在部署电脑上读取加密文件...除非是你自己写的或者第3方提供
也就是说,想要实现电脑间加密文件通用,必须自己写加密算法?[/quote] 我的意思是说直接采用xml的cmd加密是无法通过的..微软应该还提供了其他的加密方式,比如10楼..或者使用其他的第3方加密算法..当然你有时间自己写也没问题...[/quote] 现在就是没有时间,10楼的我看了,不行,不知道你能有没有时间提供几个算法说明呢?自己写的话,我现在也只能使用MD5来实现了。
tinydyw 2014-07-07
  • 打赏
  • 举报
回复
引用 11 楼 zhangping321_123 的回复:
[quote=引用 8 楼 tinydyw 的回复:] 微软官方提供的config加密只能本机解密..所以...没办法在部署电脑上读取加密文件...除非是你自己写的或者第3方提供
也就是说,想要实现电脑间加密文件通用,必须自己写加密算法?[/quote] 我的意思是说直接采用xml的cmd加密是无法通过的..微软应该还提供了其他的加密方式,比如10楼..或者使用其他的第3方加密算法..当然你有时间自己写也没问题...
xdashewan 2014-07-07
  • 打赏
  • 举报
回复
引用 11 楼 zhangping321_123 的回复:
也就是说,想要实现电脑间加密文件通用,必须自己写加密算法?
加密模式设为cbc,别说跨机器,还能跨平台
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 10 楼 findcaiyzh 的回复:
试一试这种方法: Importing and Exporting Protected Configuration RSA Key Containers Protected configuration provides the capability to create, delete, export, and import RSA key containers when using the RsaProtectedConfigurationProvider. One scenario where this is useful is in a Web farm where the same encrypted Web.config file will be deployed to several servers. In that case, the same RSA key container must also be deployed to those servers. To accomplish this, you would create an RSA key container for the application, export it to an XML file, and import it on each server that needs to decrypt the encrypted Web.config file. 具体: http://msdn.microsoft.com/en-us/library/yxw286t2%28VS.80%29.aspx
我试过这个方法,这样跟我上面程序操作的是一样的,都是只能本机使用。。 最主要的是,部署电脑上面可不一定装了VS。他的命令提示行不一定能打出来。
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 8 楼 tinydyw 的回复:
微软官方提供的config加密只能本机解密..所以...没办法在部署电脑上读取加密文件...除非是你自己写的或者第3方提供
也就是说,想要实现电脑间加密文件通用,必须自己写加密算法?
宝_爸 2014-07-07
  • 打赏
  • 举报
回复
试一试这种方法: Importing and Exporting Protected Configuration RSA Key Containers Protected configuration provides the capability to create, delete, export, and import RSA key containers when using the RsaProtectedConfigurationProvider. One scenario where this is useful is in a Web farm where the same encrypted Web.config file will be deployed to several servers. In that case, the same RSA key container must also be deployed to those servers. To accomplish this, you would create an RSA key container for the application, export it to an XML file, and import it on each server that needs to decrypt the encrypted Web.config file. 具体: http://msdn.microsoft.com/en-us/library/yxw286t2%28VS.80%29.aspx
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 6 楼 wind_cloud2011 的回复:
这说明你没有解密配置文件,以致读取不到配置信息了;加密时数据库连接串你可进行加运算之类,解密时要进行减运算等,你在本机器调试好后,再部署到其它机子上
我这个要加密的部署一个两个数据,是appSettings中的一批数据,解密文件我也有,但是现在的问题不在这,现在的问题是本机加密,其他电脑就无法获取到数据,就是说,在其他电脑上无法读取本机的加密文件。 我贴出来这个算法不是说这个算法是对的,我就是想要一个新的算法进行加密,而不是在这个算法上一路走到黑
tinydyw 2014-07-07
  • 打赏
  • 举报
回复
微软官方提供的config加密只能本机解密..所以...没办法在部署电脑上读取加密文件...除非是你自己写的或者第3方提供
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 5 楼 gomoku 的回复:
不可以。 因为RsaProtectedConfigurationProvider用了你的开发电脑的密钥容器,只有你的开发电脑可以解密。
这个原因我知道,我现在想知道的是,我应该怎么做才能实现,本机加密之后,在其他电脑上面运行也正常。 代码或者思路,谢谢
wind_cloud2011 2014-07-07
  • 打赏
  • 举报
回复
这说明你没有解密配置文件,以致读取不到配置信息了;加密时数据库连接串你可进行加运算之类,解密时要进行减运算等,你在本机器调试好后,再部署到其它机子上
gomoku 2014-07-07
  • 打赏
  • 举报
回复
不可以。 因为RsaProtectedConfigurationProvider用了你的开发电脑的密钥容器,只有你的开发电脑可以解密。
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
引用 2 楼 diaodiaop 的回复:
你问的问题有问题啊.. 到底你是加密了appconfig还是应用程序? 加密无非就是字符串操作而已..跟电脑还有关系了? 或者说你加密方式是采用CPU或者硬盘序列号? 而且 无法使用是什么意思啊? 报错 还是 exe不能运行.. 有问题 说出来嘛..
可以说是.exe不能运行
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
VS自带加密算法 public static void Encryption()//加密 { try { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConfigurationSection configSection = config.GetSection("appSettings"); if (!configSection.SectionInformation.IsProtected) { configSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); configSection.SectionInformation.ForceSave = true; config.Save(); } } catch (Exception ex) { Log.Add(ex.Message); } } 如上代码。 但是加密之后的配置文件,在另一台电脑上就报错,
by_封爱 版主 2014-07-07
  • 打赏
  • 举报
回复
你问的问题有问题啊.. 到底你是加密了appconfig还是应用程序? 加密无非就是字符串操作而已..跟电脑还有关系了? 或者说你加密方式是采用CPU或者硬盘序列号? 而且 无法使用是什么意思啊? 报错 还是 exe不能运行.. 有问题 说出来嘛..
zhangping321_123 2014-07-07
  • 打赏
  • 举报
回复
补充一下,我加密的部署连接字符串的数据,而是appSettings中的所有数据。 主要是,如果加密了,程序还能够通过原来的方法ConfigurationManager.AppSettings["条件"];还能读取出来

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧