/// <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); } }
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); } }
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; } }
/// <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); } }