最近因为工作的需要,开始接触腾讯云,在调用CMQ服务时发现官方提供的SDK只有基于.Net Framework的,而现在做.net项目的谁不是用.net core啊。好吧,既然没有官方的SDK,只能自己写服务来调用Api了。遇到的第一个麻烦点的事情就是生成签名(Signature),这里有要记录一下的就是腾讯API生成签名所用的加密方法HMACSHA1,由于官方只有php的代码案例,所以查了查网络,找到了.net的相应方法,记录如下:
public static string ToHMACSHA1(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);
}
方法返回的结果是用Base64进行编码后的结果,这也是腾讯云要求的方式。