readonly static string key = "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709";
string MD5_EncodeStr = MD5_Encode(“468498148418”);
Response.Write("[RandomNumMD5Encode]" + MD5_EncodeStr + "[/RandomNumMD5Encode]<br/>");
string MD5_DecodeStr = MD5_Decode(MD5_EncodeStr);
Response.Write("[RandomNumMD5Decode]" + MD5_DecodeStr + "[/RandomNumMD5Decode]<br/>");
/// <summary>
/// 加密
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string MD5_Encode(string data)
{
byte[] byKey = System.Text.Encoding.Default.GetBytes(key.Substring(5, 8));
byte[] byIV = System.Text.Encoding.Default.GetBytes(key.Substring(5, 8));
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
cst.Write(System.Text.Encoding.Default.GetBytes(data), 0, System.Text.Encoding.Default.GetByteCount(data));
//sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string MD5_Decode(string data)
{
//把密钥转成二进制数组
byte[] byKey = System.Text.Encoding.Default.GetBytes(key.Substring(5, 8));
byte[] byIV = System.Text.Encoding.Default.GetBytes(key.Substring(5, 8));
byte[] byEnc;
try
{
//base64解码
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
byte[] tmp = new byte[ms.Length];
cst.Read(tmp, 0, tmp.Length);
string result = System.Text.Encoding.Default.GetString(tmp);
return result.Replace("\0", "");
}