zoukankan      html  css  js  c++  java
  • 腾讯云API 生成Authentication Header加密字符串 C#代码示例

    最近对接腾讯云的API,需要用C#生成Authentication Header的加密字符串,搜索引擎上找不到例子,自己摸索遇到了不少问题,为方便大家现在放出来,都是测试性的代码,逻辑是正确的,如果用于生产环境,你自己优化封装:

     var source=GetKeyValueString();
    var signature = HMACSha1Bytes(source, _SecretKey);
    var authorizationValue = System.Convert.ToBase64String(signature.Concat(Encoding.UTF8.GetBytes(source)).ToArray());
    
    static byte[] HMACSha1Bytes(String data, String key)
            {
                HMACSHA1 hmacsha1 = new HMACSHA1();
                hmacsha1.Key = Encoding.UTF8.GetBytes(key);
                byte[] dataBuffer = Encoding.UTF8.GetBytes(data);
                byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
                return hashBytes;
            }
    
     static String GetKeyValueString()
            {
                var e = ToUnixTime(DateTime.Now.AddMinutes(10));//可重用的
                //var e = 0;//仅一次可用
                var t = ToUnixTime(DateTime.Now);
                var r = new Random().Next(100,1000000);
                return "a=" + _AppId + "&b=" + _bucket + "&k=" + _SecretId + "&e=" + e.ToString() + "&t=" + t + "&r=" + r.ToString() + "&u=0&f=";
            }
    public static long ToUnixTime( DateTime date)
            {
                var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                return System.Convert.ToInt64((date - epoch).TotalSeconds);
            }
    

      

  • 相关阅读:
    phpcms 任意位置获取用户头像
    php微信公众帐号发送红包
    nginx解决502错误
    phpcms v9 万能字段使用
    0转换为万
    温故而知新(三)
    温故而知新(一)
    基础积累,来自其他网站的链接
    GCD多线程 在子线程中获取网络图片 在主线程更新
    iOS9 中的一些适配问题
  • 原文地址:https://www.cnblogs.com/pathrough/p/7735121.html
Copyright © 2011-2022 走看看