我正在尝试使用这个问题的答案在我的.Net Core应用程序中生成HMAC-SHA1:
在 C# 中生成 HMAC-SHA1
但是,我收到byte[] does not contain a defintion for Concat
的错误。我尝试在这里搜索,但我似乎没有找到答案。
此错误发生在行var key2 = key1.Concat(oauth_consumer_secret).ToArray();
using (var sha1 = SHA1.Create())
{
var encodedStringAsByte = Encoding.UTF8.GetBytes(encodedString);
var key1 = sha1.ComputeHash(encodedStringAsByte);
var key2 = key1.Concat(oauth_consumer_secret).ToArray();
var key3 = sha1.ComputeHash(key2);
string signature = Convert.ToBase64String(key3);
}
任何见解和知识都值得赞赏,谢谢。
我怀疑你只是缺少程序集包括
using System.Linq;
oauth_consumer_secret
需要是一个byte[]
,而你似乎试图传递一个string
。您应该改为这样做:
//snip
var encodedSecret = Encoding.UTF8.GetBytes(oauth_consumer_secret);
var key2 = key1.Concat(encodedSecret).ToArray();
//snip