您的位置:首页 > 编程语言 > C#

腾讯云API 生成Authentication Header加密字符串 C#代码示例

2017-10-26 08:45 429 查看
最近对接腾讯云的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);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: