asp.net 中的 MD5加密和DES加解密算法类

#region MD5算法

public string md5(string str, int code)

{

if (code == 32) //32位加密

{

return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, “MD5″).ToLower();

}

else //16位MD5加密(取32位加密的9~25字符)

{

return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, “MD5″).ToLower().Substring(8, 16);

}

}

#endregion

#region DESEncrypt DES加密

// <summary>

/// 进行DES加密。

/// </summary>

/// <param name=”pToEncrypt”>要加密的字符串。</param>

/// <param name=”sKey”>密钥,且必须为8位。</param>

/// <returns>以Base64格式返回的加密字符串。</returns>

public string DESEncrypt(string pToEncrypt, string sKey)

{

using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())

{

byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))

{

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

cs.Close();

}

string str = Convert.ToBase64String(ms.ToArray());

ms.Close();

return str;

}

}

#endregion

#region DESDecrypt DES解密

/// <summary>

/// 进行DES解密。

/// </summary>

/// <param name=”pToDecrypt”>要解密的以Base64</param>

/// <param name=”sKey”>密钥,且必须为8位。</param>

/// <returns>已解密的字符串。</returns>

public string DESDecrypt(string pToDecrypt, string sKey)

{

byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);

using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())

{

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))

{

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

cs.Close();

}

string str = Encoding.UTF8.GetString(ms.ToArray());

ms.Close();

return str;

}

}

#endregion