不是直接的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();
        }

解决方案 »

  1.   

    用 hmac
      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();
                }