C# 使用HmacSha1Sign

        public static string HmacSha1Sign(string text, string key) {
      
            byte[] byteData = Encoding.UTF8.GetBytes(text);
            byte[] byteKey = Encoding.UTF8.GetBytes(key);
            HMACSHA1 hmac = new HMACSHA1(byteKey);
            CryptoStream cs = new CryptoStream(Stream.Null, hmac, CryptoStreamMode.Write);
            cs.Write(byteData, 0, byteData.Length);
            cs.Close();
            return encode(hmac.Hash);
        }

        private string ccity_md5(string encryptText, string encryptKey) {

            //HMACSHA1加密
            //HMACSHA1 hmacsha1 = new HMACSHA1();
            //hmacsha1.Key = System.Text.Encoding.UTF8.GetBytes(encryptKey);

            //byte[] dataBuffer = System.Text.Encoding.UTF8.GetBytes(encryptText);
            //byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
            //return Convert.ToBase64String(hashBytes);

            var hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(encryptKey));
            var dataBuffer = Encoding.UTF8.GetBytes(encryptText);
            var hashBytes = hmacsha1.ComputeHash(dataBuffer);
            return Convert.ToBase64String(hashBytes);

        }

        private string ccity_md5_2(string encryptText, string encryptKey) {

            var hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(encryptKey));
            var dataBuffer = Encoding.UTF8.GetBytes(encryptText);
            var hashBytes = hmacsha1.ComputeHash(dataBuffer);

            return JavaBase64(hashBytes);

        }

        public static string JavaBase64(byte[] by) {

            sbyte[] sby = new sbyte[by.Length];
            for (int i = 0; i < by.Length; i++) {
                if (by[i] > 127)
                    sby[i] = (sbyte)(by[i] - 256);
                else
                    sby[i] = (sbyte)by[i];
            }
            byte[] newby = (byte[])(object)sby;

            return Convert.ToBase64String(newby);
        }

        private static char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".ToCharArray();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值