我正在构建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. 嵌入式Shopify应用程序的HMAC验证
- 2. Azure'功能应用程序'与2x功能与2x'功能应用程序'
- 3. 的Python 3哈希HMAC-SHA512
- 4. 基于JAX-RS 2.0应用程序中的bean验证的HTML表单验证
- 5. 为什么一些应用程序基于64编码HMAC?
- 6. 在基于GWT + GAE的应用程序中进行验证
- 7. 如何验证基于OAuth API的主应用程序
- 8. 在tomcat中基于JSP web应用程序的身份验证
- 9. 在Cocoa应用程序上禁用基于文档的功能
- 10. 基于视图的应用程序中的openGL功能
- 11. 基于视图的应用程序中的OpenGL功能
- 12. 功能测试基于JSP servlet的web应用程序
- 13. 适用于iPhone应用程序的基于SAML 2.0的身份验证
- 14. Windows商店应用程序进行天蓝色功能验证
- 15. Android“通过USB验证应用程序”功能
- 16. 哪些Firebase离线功能用于测验应用程序(ios)
- 17. SHA512散列凭证失败的验证
- 18. 如何验证HMAC的Java
- 19. 视图基于与基于Windows的iphone应用程序
- 20. Python 3.6.1对于poloniex交易api的HMAC-SHA512的发布请求
- 21. 使ASP.NET Web应用程序符合FIPS?
- 22. 关于sskeychain和iPad应用程序的基本身份验证教程?
- 23. 使用基于SMS的身份验证的iPhone或Android应用程序?
- 24. Azure的功能应用和Web应用程序的认证
- 25. 验证iOS应用程序
- 26. 基于角度令牌的基于身份验证的验证
- 27. 使用Active Directory和Open ID验证基于Play Framework的应用程序
- 28. 如何在IONIC应用程序中使用基于SAML的身份验证
- 29. 计算HMAC-SHA512在Java密钥
- 30. 原生HMAC SHA512支持Swift 3.1
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