簡體   English   中英

如何在.NET 4.5 Core中計算HMAC-SHA1身份驗證代碼

[英]How to calculate HMAC-SHA1 authentication code in .NET 4.5 Core

我目前面臨一個大問題(環境:.NET 4.5 Core):我們需要使用HMAC-SHA1算法用密鑰保護消息。 問題是名稱空間System.Security.Cryptography的HMACSHA1類和名稱空間本身在.NET 4.5 Core中不存在,此命名空間僅存在於.NET的正常版本中。

我嘗試了很多方法為我們的目的找到一個等效的命名空間,但我發現的唯一的東西是Windows.Security.Cryptography ,遺憾的是它沒有提供HMAC加密。

有沒有人知道如何解決我們的問題,或者是否可以免費使用第三方解決方案?

Windows.Security.Cryptography命名空間確實包含HMAC。

您可以通過調用靜態OpenAlgorithm方法並指定以下算法名稱之一來創建MacAlgorithmProvider對象: HMAC_MD5 HMAC_SHA1 HMAC_SHA256 HMAC_SHA384 HMAC_SHA512 AES_CMAC

http://msdn.microsoft.com/en-us/library/windows/apps/windows.security.cryptography.core.macalgorithmprovider.aspx

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();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM