コード例 #1
0
        /// <summary>
        /// 解密并进行XML反序列化
        /// </summary>
        /// <param name="xmlFileName">文件路径</param>
        /// <returns></returns>
        public static T DeserializeDecrypt <T>(string xmlFileName)
        {
            string  encrypt = File.ReadAllText(xmlFileName, Encoding.UTF8);
            ICrypto crypto  = CryptoFactory.Create(CrytoType.TripleDES);
            string  content = crypto.Decrypt(encrypt);

            byte[] bytes = Encoding.UTF8.GetBytes(content);
            using (MemoryStream stream = new MemoryStream(bytes))
            {
                XmlSerializer formatter = new XmlSerializer(typeof(T));

                stream.Seek(0, SeekOrigin.Begin);
                Object obj = formatter.Deserialize(stream);
                stream.Close();
                return((T)obj);
            }
        }
コード例 #2
0
        public static string ReadContentDecrypt(string fileName)
        {
            string  encrypt = File.ReadAllText(fileName, Encoding.Default);
            ICrypto crypto  = CryptoFactory.Create(CrytoType.TripleDES);
            string  content = crypto.Decrypt(encrypt);

            byte[] bytes  = Encoding.UTF8.GetBytes(content);
            string result = "";

            using (MemoryStream stream = new MemoryStream(bytes))
            {
                stream.Seek(0, SeekOrigin.Begin);
                result = Encoding.UTF8.GetString(stream.ToArray());
                stream.Close();
                return(result);
            }
        }
コード例 #3
0
 public static bool WriteContentEncrypt(string fileName, string content)
 {
     try
     {
         using (Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
         {
             ICrypto crypto   = CryptoFactory.Create(CrytoType.TripleDES);
             string  content1 = crypto.Encrypt(content);
             byte[]  bytes    = Encoding.UTF8.GetBytes(content1);
             stream.Write(bytes, 0, bytes.Length);
             stream.Close();
         }
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #4
0
        /// <summary>
        /// XML序列化并加密
        /// </summary>
        /// <param name="xmlFileName">文件路径</param>
        /// <param name="obj">对象</param>
        /// <returns></returns>
        public static bool SerializeEncrypt(string xmlFileName, object obj)
        {
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("", "");

            try
            {
                if (!File.Exists(xmlFileName))
                {
                    FileInfo fi = new FileInfo(xmlFileName);
                    if (!fi.Directory.Exists)
                    {
                        Directory.CreateDirectory(fi.Directory.FullName);
                    }
                }

                using (Stream stream = new FileStream(xmlFileName, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    string content = "";
                    using (MemoryStream ms = new MemoryStream())
                    {
                        XmlSerializer format = new XmlSerializer(obj.GetType());
                        format.Serialize(ms, obj, ns);
                        ms.Seek(0, 0);
                        content = Encoding.UTF8.GetString(ms.ToArray());
                    }

                    ICrypto crypto   = CryptoFactory.Create(CrytoType.TripleDES);
                    string  content1 = crypto.Encrypt(content);
                    byte[]  bytes    = Encoding.UTF8.GetBytes(content1);
                    stream.Write(bytes, 0, bytes.Length);
                    stream.Close();
                }
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }
        }