调用.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 "";
}
}