C# MD5,hmacSHA1

一 MD5

推荐使用:

md5

MD5 md5Hasher = MD5.Create();
            byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes("myTest+123"));

            StringBuilder sBuilder = new StringBuilder();
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }
            //可替换
            //string result = string.Join("", data.Select(x => x.ToString("x2")));
            Console.WriteLine(sBuilder);

md5+base64:

MD5 md5Hasher = MD5.Create();
string strMD5 = Convert.ToBase64String(md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(str)));

不推荐:

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper();

因为我有一次和java接口对接时,

发现不推荐的md5和人家出来的结果不一样

二 hmacSHA1 

public static string HmacSha1Sign(string secret, string strOrgData)
        {
            var hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(secret));
            var dataBuffer = Encoding.UTF8.GetBytes(strOrgData);
            var hashBytes = hmacsha1.ComputeHash(dataBuffer);
            return Convert.ToBase64String(hashBytes);
        }
原文地址:https://www.cnblogs.com/hanjun0612/p/9779723.html