調用.net的對象那個,沒什麼難的,主要是實用。我給做成了個類,順便複製了遍改了下變成SHA1的……
using System.Web.Security;
/// <summary>
///對字符串使用哈希算法(MD5或SHA1)進行加密。
/// </summary>
public class encrypt
{
/// <summary>
/// 構造函數
/// </summary>
public encrypt()
{
}
/// <summary>
/// MD5算法,注意這是一種不可逆的加密算法。
/// </summary>
/// <param name="str">要進行哈希運算的密碼。</param>
/// <param name="code">指定長度,只接受16和32這兩個值。</param>
/// <returns>經過哈希運算的MD5密碼。</returns>
public string MD5(string str, int code)
{
if (str == "") return "";
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper().Substring(8, 16);
}
if (code == 32) //32位加密
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper();
}
return "";
}
/// <summary>
/// SHA1算法,注意這是一種不可逆的加密算法。
/// </summary>
/// <param name="str">要進行哈希運算的密碼。</param>
/// <param name="code">指定長度,只接受16和32這兩個值。</param>
/// <returns>經過哈希運算的SHA1密碼。</returns>
public string SHA1(string str, int code)
{
if (str == "") return "";
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1").ToUpper().Substring(8, 16);
}
if (code == 32) //32位加密
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1").ToUpper();
}
return "";
}
}