不是直接的MD5 32写法,而是加了一个签名key的,找了一个方法,似乎不对头,验证没通过 public string EncryptMD5( string password)
{
string
key="32字符的key";
MD5 md5 = MD5.Create();
byte[] bs = Encoding.UTF8.GetBytes(password+"&key="+key);
byte[] hs = md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
foreach (byte b in hs)
{
sb.Append(b.ToString("x2"));
} //再次加密
byte[] nbs = Encoding.UTF8.GetBytes(sb.ToString() + key);
byte[] nhs = md5.ComputeHash(nbs);
StringBuilder nsb = new StringBuilder();
foreach (byte nb in nhs)
{
nsb.Append(nb.ToString("x2"));
} return nsb.ToString();
}
{
string
key="32字符的key";
MD5 md5 = MD5.Create();
byte[] bs = Encoding.UTF8.GetBytes(password+"&key="+key);
byte[] hs = md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
foreach (byte b in hs)
{
sb.Append(b.ToString("x2"));
} //再次加密
byte[] nbs = Encoding.UTF8.GetBytes(sb.ToString() + key);
byte[] nhs = md5.ComputeHash(nbs);
StringBuilder nsb = new StringBuilder();
foreach (byte nb in nhs)
{
nsb.Append(nb.ToString("x2"));
} return nsb.ToString();
}
using (var hasne = HMAC.Create("HMACMD5"))
{
hasne.Key = Encoding.UTF8.GetBytes("我是key");
var suieg = hasne.ComputeHash(Encoding.UTF8.GetBytes("我是要加密的字符串"));
StringBuilder builder = new StringBuilder();
foreach (var item in suieg)
{
builder.Append(item.ToString("x2"));
} return builder.ToString();
}