注意:是winform配置文件,加密的是项目名.exe.config我现在想把连接串和程序中的配置数据都要加密,在网上看了一大堆:
对称加密法
不对称加密法
DES加密法:此方法一旦加密后为乱码,可是这样程序就再启动不了了
Dpapi提供程序大家都用的是哪种?具体代码来点吧,thanks

解决方案 »

  1.   

    我是想把连接串和程序中的配置数据都要加密,程序还能正常运行,等用到连接串和配置的数据时,再解密获取,大家给点思路吧
    我在网上找了个用RSACryptoServiceProvider的例子,如果程序运行后先加密,再解密是没问题的,但是如果是先加密,然后把程序退出,再启运程序解密,这时候就报错,没办法解密了,错误提示:不正确的数据。
      

  2.   

    2楼的问题已经解决了,现在还有个问题
    <KeyName>123</KeyName>密钥是123,怎么加密后的XML会把密钥显示出来!怎么才能不显示出来呢?
      

  3.   

    读取KeyName 把里面的加密显示。
      

  4.   

    你可以看一下MSDN的有关加密的主题:
    开发工具和语言->Visual Studio文档->Visual Studio中的.NET Framework编程->本机代码和.NET Framework代码的安全性->.NET Framework代码的安全性->加密服务 
    如何:用对称密钥对 XML 元素进行加密
    如何:用非对称密钥对 XML 元素进行解密
    如何:用 X.509 证书对 XML 元素进行加密
    等等。
    我采用的是:如何:用非对称密钥对 XML 元素进行解密
    这里面有代码。
    比如有XML文档:
    <root>
        <creditcard>
            <number>19834209</number>
            <expiry>02/02/2002</expiry>
        </creditcard>
    </root>
    该主题描述了如何采用如何用非对称密钥对 XML 元素进行解密,而且你不用管密钥存放的位置,因为密钥存放在系统里面了。
    具体的代码我就不描述了,抄下来跑一遍就知道了。不过,这里面的代码有点问题,需要:
    在 Encrypt(..)中,将edElement.KeyInfo.AddClause(New KeyInfoEncryptedKey(ek))这句话移到edElement.CipherData.CipherValue = encryptedElement 之前就OK了。
    MSDN有时候也会有问题啊。请看以下连接:http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/b715dfd1-48d6-453b-b938-0c9dc766b06a/