方法1:public static string exeDesc(string theText, string theKey)
{
using (MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider())
{
using (TripleDESCryptoServiceProvider myDESC_1 = new TripleDESCryptoServiceProvider())
{
myDESC_1.Key = myMd5.ComputeHash(UnicodeEncoding.Unicode.GetBytes(theKey));
myDESC_1.Mode = CipherMode.ECB;
byte[] xByte = Encoding.Unicode.GetBytes(theText);
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, myDESC_1.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(xByte, 0, xByte.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
}
}
}
}
方法2:public static string exeDesc(string theText, string theKey)
{
MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider();
TripleDESCryptoServiceProvider myDESC_1 = new TripleDESCryptoServiceProvider();
myDESC_1.Key = myMd5.ComputeHash(UnicodeEncoding.Unicode.GetBytes(theKey));
myDESC_1.Mode = CipherMode.ECB;
byte[] xByte = Encoding.Unicode.GetBytes(theText);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, myDESC_1.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(xByte, 0, xByte.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
请问方法2是不是有内存泄漏问题,因为都没有释放资源。方法1是我修改后的。
{
using (MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider())
{
using (TripleDESCryptoServiceProvider myDESC_1 = new TripleDESCryptoServiceProvider())
{
myDESC_1.Key = myMd5.ComputeHash(UnicodeEncoding.Unicode.GetBytes(theKey));
myDESC_1.Mode = CipherMode.ECB;
byte[] xByte = Encoding.Unicode.GetBytes(theText);
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, myDESC_1.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(xByte, 0, xByte.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
}
}
}
}
方法2:public static string exeDesc(string theText, string theKey)
{
MD5CryptoServiceProvider myMd5 = new MD5CryptoServiceProvider();
TripleDESCryptoServiceProvider myDESC_1 = new TripleDESCryptoServiceProvider();
myDESC_1.Key = myMd5.ComputeHash(UnicodeEncoding.Unicode.GetBytes(theKey));
myDESC_1.Mode = CipherMode.ECB;
byte[] xByte = Encoding.Unicode.GetBytes(theText);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, myDESC_1.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(xByte, 0, xByte.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
请问方法2是不是有内存泄漏问题,因为都没有释放资源。方法1是我修改后的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货