HMAC-SHA256 & MD5 In C#

C#中两个常用的加密方法:

个人Mark,仅作参考。

public static class Extends
    {
        /// <summary>
        /// HMAC  SHA256
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string Sha256(this string str)
        {
            byte[] sha256Data = Encoding.UTF8.GetBytes(str);
            SHA256Managed sha256 = new SHA256Managed();
            byte[] buffer = sha256.ComputeHash(sha256Data);
            // 可以根据需要处理加密后的字节数组,比如使用Base64.这里使用BitConverter转为64位字符。
            return BitConverter.ToString(buffer).Replace("-", "").ToLower();
        }

        /// <summary>
        /// MD5
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string Md5(this string str)
        {
            var md5 = MD5.Create();// 加密后是一个字节类型的数组 
            byte[] buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(str));

            // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符.
       // X2和x2表示不省略首位为0的十六进制数字;比如:ox0A, 使用 X== 0xA,  使用 X2==0x0A 。标准MD5是使用 x2 或者 X2,否则可能位数丢失。
            return buffer.Aggregate(string.Empty, (current, t) => current + t.ToString("x2"));
        }
    }
原文地址:https://www.cnblogs.com/WinHEC/p/HMAC-SHA256_And_MD5_In_CSharp.html