C# 如何在.NET4.5内核中计算HMAC-SHA1身份验证码

C# 如何在.NET4.5内核中计算HMAC-SHA1身份验证码,c#,.net,cryptography,hmac,hmacsha1,C#,.net,Cryptography,Hmac,Hmacsha1,我目前面临一个大问题(环境:.NET4.5Core):我们需要使用HMAC-SHA1算法使用密钥保护消息。问题是.NET 4.5核心中不存在命名空间System.Security.Cryptography的HMACSHA1类和命名空间本身,该命名空间仅存在于.NET的正常版本中 我尝试了很多方法为我们的目的找到一个等价的名称空间,但我唯一找到的是Windows.Security.Cryptography,遗憾的是它没有提供HMAC加密 是否有人知道我如何解决我们的问题,或者是否有免费的第三方解决

我目前面临一个大问题(环境:.NET4.5Core):我们需要使用HMAC-SHA1算法使用密钥保护消息。问题是.NET 4.5核心中不存在命名空间
System.Security.Cryptography
的HMACSHA1类和命名空间本身,该命名空间仅存在于.NET的正常版本中

我尝试了很多方法为我们的目的找到一个等价的名称空间,但我唯一找到的是
Windows.Security.Cryptography
,遗憾的是它没有提供HMAC加密


是否有人知道我如何解决我们的问题,或者是否有免费的第三方解决方案?

Windows.Security.Cryptography命名空间确实包含HMAC

通过调用static
OpenAlgorithm
方法并指定以下算法之一,可以创建一个
MacAlgorithmProvider
对象 名称:
HMAC\u MD5 HMAC\u SHA1 HMAC\u SHA256 HMAC\u SHA384 HMAC\u SHA512 AES\u CMAC


谢谢你的快速回复。这很有帮助,我能够成功地运行CreateHMAC方法(在technet上描述),但我需要的是这样的东西:HMAC_SHA1(“键”,“快速棕色狐狸跳过懒狗”)=0xde7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9您知道如何检索这样的散列值吗。提前感谢您的澄清,当您提到.net 4.5 core时,您指的是.net 4.5的win8 api子集,这就是为什么您没有访问System.Security.Cryptography的权限?
public static byte[] HmacSha1Sign(byte[] keyBytes, string message){ 
    var messageBytes= Encoding.UTF8.GetBytes(message);
    MacAlgorithmProvider objMacProv = MacAlgorithmProvider.OpenAlgorithm("HMAC_SHA1");
    CryptographicKey hmacKey = objMacProv.CreateKey(keyBytes.AsBuffer());
    IBuffer buffHMAC = CryptographicEngine.Sign(hmacKey, messageBytes.AsBuffer());
    return buffHMAC.ToArray();

}