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