using System; using System.Security.Cryptography; using System.IO; namespace Ant.Service.Utilities { /// /// 加密解密实用类。 /// public class Encrypt { //密钥 private static byte[] arrDESKey = new byte[] {42, 16, 93, 156, 78, 4, 218, 32}; private static byte[] arrDESIV = new byte[] {55, 103, 246, 79, 36, 99, 167, 3}; /// /// 加密。 /// /// /// public static string Encode(string m_Need_Encode_String) { if (m_Need_Encode_String == null) { throw new Exception("Error: \n源字符串为空!!"); } DESCryptoServiceProvider objDES = new DESCryptoServiceProvider(); MemoryStream objMemoryStream = new MemoryStream(); CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateEncryptor(arrDESKey,arrDESIV),CryptoStreamMode.Write); StreamWriter objStreamWriter = new StreamWriter(objCryptoStream); objStreamWriter.Write(m_Need_Encode_String); objStreamWriter.Flush(); objCryptoStream.FlushFinalBlock(); objMemoryStream.Flush(); return Convert.ToBase64String(objMemoryStream.GetBuffer(), 0, (int)objMemoryStream.Length); } /// /// 解密。 /// /// /// public static string Decode(string m_Need_Encode_String) { if (m_Need_Encode_String == null) { throw new Exception("Error: \n源字符串为空!!"); } DESCryptoServiceProvider objDES = new DESCryptoServiceProvider(); byte[] arrInput = Convert.FromBase64String(m_Need_Encode_String); MemoryStream objMemoryStream = new MemoryStream(arrInput); CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateDecryptor(arrDESKey,arrDESIV),CryptoStreamMode.Read); StreamReader objStreamReader = new StreamReader(objCryptoStream); return objStreamReader.ReadToEnd(); } /// /// md5 /// /// /// public static string Md5(string encypStr) { string retStr; MD5CryptoServiceProvider m5 = new MD5CryptoServiceProvider(); byte[] inputBye; byte[] outputBye; inputBye = System.Text.Encoding.ASCII.GetBytes(encypStr); outputBye = m5.ComputeHash(inputBye); retStr = Convert.ToBase64String(outputBye); return (retStr); } } }