public bool hmac_md5( string timespan, password,255);">ref outdigest)
{
byte[] b_tmp;
[] b_tmp1;
string szRet = .Empty;
if (password ==null|| password.Length <1)
{
returnfalse;
}
[] digest new[512];
[] k_ipad 64[] k_opad [] source System.Text.ASCIIEncoding.ASCII.GetBytes(password);
System.Security.Cryptography.MD5 shainner
MD5CryptoServiceProvider();for (int i 0; i ; i++)
{
k_ipad[i]
^0x36;k_opad[i]
0x5ctry(source.Length >)
{
shainner
MD5CryptoServiceProvider();source
shainner.ComputeHash(source);}
source.Length; i)
{
k_ipad[i]
)(source[i] );k_opad[i]
);}
b_tmp1
System.Text.ASCIIEncoding.ASCII.GetBytes(timespan);b_tmp
adding(k_ipad, b_tmp1);shainner
MD5CryptoServiceProvider();digest
shainner.ComputeHash(b_tmp);b_tmp
adding(k_opad, digest);shainner
shainner.ComputeHash(b_tmp);// for (int i = 0; i < digest.Length; i++)
{
outdigest System.Text.ASCIIEncoding.ASCII.GetString(digest);[i].ToString();
} truecatch (Exception e)
{
outdigest
e.Message.ToString();
}
/***
* * 填充byte
**
*/byte [] adding( [] a,0);">[] b)
[] c [a.Length + b.Length];
a.CopyTo(c,
); b.CopyTo(c, a.Length);
c;
}