我正在構建FIPS驗證的應用程序,並在我的計算機上啓用了FIPS模式。我需要一個基於SHA512的HMAC函數。據我所知,HMAC SHA1函數經FIPS驗證,但我有一個經過FIPS驗證的散列函數SHA512CryptoServiceProvider,並且我知道FIPS實際上允許SHA512。在FIPS中驗證HMAC SHA512的C#中是否有類似的HMAC功能?基於SHA512的FIPS驗證應用程序與HMAC功能?
4
A
回答
7
有一個HMACSHA512 Class,但它在內部使用SHA512Managed Class,這是not FIPS certified。
你可以基於該SHA512CryptoServiceProvider Class嘗試create your own HMACSHA512 Class:
public class MyHMACSHA512 : HMAC
{
public MyHMACSHA512(byte[] key)
{
HashName = "System.Security.Cryptography.SHA512CryptoServiceProvider";
HashSizeValue = 512;
BlockSizeValue = 128;
Key = key;
}
}
2
以下爲我工作 - 我可以同時創建AES和SHA256 FIPS快樂HMAC:
/// <summary>Computes a Hash-based Message Authentication Code (HMAC) using the AES hash function.</summary>
public class AesHmac : HMAC
{
/// <summary>Initializes a new instance of the AesHmac class with the specified key data.</summary>
/// <param name="key">The secret key for AesHmac encryption.</param>
public AesHmac(byte[] key)
{
HashName = "System.Security.Cryptography.AesCryptoServiceProvider";
HashSizeValue = 128;
BlockSizeValue = 128;
Initialize();
Key = (byte[])key.Clone();
}
}
/// <summary>Computes a Hash-based Message Authentication Code (HMAC) using the SHA256 hash function.</summary>
public class ShaHmac : HMAC
{
/// <summary>Initializes a new instance of the ShaHmac class with the specified key data.</summary>
/// <param name="key">The secret key for ShaHmac encryption.</param>
public ShaHmac(byte[] key)
{
HashName = "System.Security.Cryptography.SHA256CryptoServiceProvider";
HashSizeValue = 256;
BlockSizeValue = 128;
Initialize();
Key = (byte[])key.Clone();
}
}
謝謝, Ritchie
相關問題
- 1. R HMAC-SHA512簽署
- 2. 嵌入式Shopify應用程序的HMAC驗證
- 3. Azure'功能應用程序'與2x功能與2x'功能應用程序'
- 4. 的Python 3哈希HMAC-SHA512
- 5. 基於JAX-RS 2.0應用程序中的bean驗證的HTML表單驗證
- 6. 爲什麼一些應用程序基於64編碼HMAC?
- 7. 如何驗證基於OAuth API的主應用程序
- 8. 基於SSLSockets的驗證java應用程序
- 9. 基於令牌的身份驗證自動化應用程序
- 10. 在tomcat中基於JSP web應用程序的身份驗證
- 11. 在基於GWT + GAE的應用程序中進行驗證
- 12. 在Cocoa應用程序上禁用基於文檔的功能
- 13. 基於視圖的應用程序中的OpenGL功能
- 14. 基於視圖的應用程序中的openGL功能
- 15. 功能測試基於JSP servlet的web應用程序
- 16. 單元和功能測試基於PySide的應用程序?
- 17. .each()用於驗證功能後的.clone()
- 18. 適用於iPhone應用程序的基於SAML 2.0的身份驗證
- 19. Android密碼庫FIPS驗證
- 20. Android「通過USB驗證應用程序」功能
- 21. Windows商店應用程序進行天藍色功能驗證
- 22. 功能測試與驗證
- 23. 哪些Firebase離線功能用於測驗應用程序(ios)
- 24. 用於Python的等效HMAC SHA512 ruby代碼密鑰
- 25. 關於hmac功能的提示,登錄
- 26. 爲什麼SHA512管理不符合FIPS?
- 27. SHA512散列憑證失敗的驗證
- 28. javascript中的HMAC驗證API
- 29. 如何驗證HMAC的Java
- 30. 在驗證功能中基於敲除驗證消息的設置
Yah多數民衆贊成真正的唯一的問題是,與FIPS兼容性打開它不起作用。我需要一個兼容FIPS的HMAC SHA512。例如,SHA512Cng在FIPS兼容模式下打破,SHA512CryptoServiceProvider不打開。 HMACSHA512在FIPS兼容模式下斷開HMACSHA1沒有。我想找到一個基於SHA512的HMAC,它不會中斷FIPS兼容性。 – hobeau 2012-01-31 14:00:22
我明白了。默認情況下,HMACSHA512類內部使用SHA512Managed類,該類未經FIPS驗證。您可以嘗試基於SHA512CryptoServiceProvider類創建您自己的HMACSHA512類。 – dtb 2012-01-31 14:22:39
感謝您的回覆。我嘗試了這種方法,但我有例外。它看起來像SHA512CryptoServiceProvider不是一個有效的哈希名稱http://msdn.microsoft.com/en-us/library/kczffhwa.aspx – hobeau 2012-01-31 15:20:51