示例#1
0
        /// <summary> 获取基于密钥的 Hash 加密方法 </summary>
        private static HMAC GetHmac(HmacFormat hmacFormat, byte[] key)
        {
            HMAC hmac;

            switch (hmacFormat)
            {
            case HmacFormat.HMACMD5:
                hmac = new HMACMD5(key);
                break;

            //case HmacFormat.HMACRIPEMD160:
            //    hmac = new HMACRIPEMD160(key);
            //    break;
            case HmacFormat.HMACSHA1:
                hmac = new HMACSHA1(key);
                break;

            case HmacFormat.HMACSHA256:
                hmac = new HMACSHA256(key);
                break;

            case HmacFormat.HMACSHA384:
                hmac = new HMACSHA384(key);
                break;

            case HmacFormat.HMACSHA512:
                hmac = new HMACSHA512(key);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(hmacFormat), hmacFormat, null);
            }

            return(hmac);
        }
示例#2
0
        /// <summary> 获取基于密钥的 Hash 加密方法 </summary>
        private static HMAC GetHmac(HmacFormat hmacFormat, byte[] key)
        {
            HMAC hmac = null;

            switch (hmacFormat)
            {
            case HmacFormat.HMACMD5:
                hmac = new HMACMD5(key);
                break;

            //case HmacFormat.HMACRIPEMD160:
            //    hmac = new HMACRIPEMD160(key);
            //    break;
            case HmacFormat.HMACSHA1:
                hmac = new HMACSHA1(key);
                break;

            case HmacFormat.HMACSHA256:
                hmac = new HMACSHA256(key);
                break;

            case HmacFormat.HMACSHA384:
                hmac = new HMACSHA384(key);
                break;

            case HmacFormat.HMACSHA512:
                hmac = new HMACSHA512(key);
                break;
            }

            return(hmac);
        }
示例#3
0
        /// <summary> 对字符串进行基于密钥的 Hash 加密 </summary>
        /// <param name="inputString"></param>
        /// <param name="key">密钥的长度不限,建议的密钥长度为 64 个英文字符。</param>
        /// <param name="hashFormat"></param>
        /// <returns></returns>
        public static string Hmac(string inputString, string key, HmacFormat hashFormat = HmacFormat.HMACSHA1)
        {
            var algorithm = GetHmac(hashFormat, Encoding.ASCII.GetBytes(key));

            algorithm.ComputeHash(Encoding.UTF8.GetBytes(inputString));

            return(BitConverter.ToString(algorithm.Hash).Replace("-", "").ToUpper());
        }
示例#4
0
        /// <summary>
        /// 获取加密方法
        /// </summary>
        /// <param name="hmacFormat"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        private static HMAC GetHmac(HmacFormat hmacFormat, byte[] key)
        {
            HMAC hmac = null;

            switch (hmacFormat)
            {
                case HmacFormat.HMACMD5:
                    hmac = new HMACMD5(key);
                    break;

                case HmacFormat.HMACRIPEMD160:
                    hmac = new HMACRIPEMD160(key);
                    break;

                case HmacFormat.HMACSHA1:
                    hmac = new HMACSHA1(key);
                    break;

                case HmacFormat.HMACSHA256:
                    hmac = new HMACSHA256(key);
                    break;

                case HmacFormat.HMACSHA384:
                    hmac = new HMACSHA384(key);
                    break;

                case HmacFormat.HMACSHA512:
                    hmac = new HMACSHA512(key);
                    break;
            }

            return hmac;
        }
示例#5
0
        /// <summary>
        /// 对字符串进行基于密钥的 Hash 加密
        /// </summary>
        /// <param name="inputString"></param>
        /// <param name="key"></param>
        /// <param name="hashFormat"></param>
        /// <returns></returns>
        public static string Hmac(string inputString, string key, HmacFormat hashFormat)
        {
            HMAC algorithm = GetHmac(hashFormat, Encoding.UTF8.GetBytes(key));
            algorithm.ComputeHash(Encoding.UTF8.GetBytes(inputString));

            return BitConverter.ToString(algorithm.Hash).Replace("-", "").ToUpper();
        }