日期:2014-05-18 浏览次数:21327 次
        private XmlDocument EncryptXML(XmlDocument doc)
        {
            try
            {
                XmlElement xmlElemt;
                xmlElemt = doc.DocumentElement;
                CspParameters csp = new CspParameters();
                csp.KeyContainerName = "abcde123";
                csp.Flags = CspProviderFlags.UseMachineKeyStore;
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
                EncryptedXml xmlEnc = new EncryptedXml(doc);
                xmlEnc.AddKeyNameMapping("asyncKey", rsa);
                EncryptedData encXml = xmlEnc.Encrypt(xmlElemt, "asyncKey");
                EncryptedXml.ReplaceElement(xmlElemt, encXml, false);
                 
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return doc;
        }
        private XmlDocument DecryptXML(string filename)
        {
            XmlDocument doc = new XmlDocument();
            try
            {
                doc.Load(filename);//加载加密后的xml文件
                CspParameters csp = new CspParameters();
                csp.KeyContainerName = "abcde123";
                csp.Flags = CspProviderFlags.UseMachineKeyStore;
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
                EncryptedXml encXml = new EncryptedXml(doc);
                encXml.AddKeyNameMapping("asyncKey", rsa);
                encXml.DecryptDocument();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return doc;
        }