byte []不包含concat的定义

时间:2017-03-24 12:31:49

标签: c# cryptography asp.net-core-mvc hmacsha1 asp.net-core-1.1

我正在尝试使用此问题的答案在我的.Net Core应用程序中生成HMAC-SHA1:

generate HMAC-SHA1 in C#

但是,我收到错误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);
 }

感谢您的任何见解和知识,谢谢。

2 个答案:

答案 0 :(得分:3)

我怀疑你刚刚错过了汇编

using System.Linq;

答案 1 :(得分:2)

oauth_consumer_secret必须是byte[],您似乎正在尝试传递string。您应该这样做:

//snip
var encodedSecret = Encoding.UTF8.GetBytes(oauth_consumer_secret);
var key2 = key1.Concat(encodedSecret).ToArray();
//snip