Swi*_*ime 5 .net c# cryptography hmac hmacsha1
我目前面临一个大问题(环境:.NET 4.5 Core):我们需要使用HMAC-SHA1算法用密钥保护消息.问题是命名空间的HMACSHA1类System.Security.Cryptography和命名空间本身在.NET 4.5 Core中不存在,此命名空间仅存在于.NET的普通版本中.
我尝试了很多方法来为我们的目的找到一个等效的命名空间,但我发现的唯一的事情是Windows.Security.Cryptography遗憾的是它没有提供HMAC加密.
有没有人知道如何解决我们的问题,或者是否可以免费使用第三方解决方案?
该Windows.Security.Cryptography命名空间中确实含有HMAC.
您可以
MacAlgorithmProvider通过调用静态OpenAlgorithm方法并指定以下算法名称之一来创建对象:HMAC_MD5 HMAC_SHA1 HMAC_SHA256 HMAC_SHA384 HMAC_SHA512 AES_CMAC
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();
}
Run Code Online (Sandbox Code Playgroud)