为什么Create()
- SHA类型 1 的Cng
方法返回CryptoServiceProvider
,而SHA 256 >返回Managed
?
(换句话说:为什么SHA 1 Cng.Create()返回SHA1CryptoServiceProvider
,而SHA 256 Cng.Create()返回SHA256Managed
?)
(如果您可以解释为什么SHA256Cng.Create()
被实施来创建SHA256Managed
而不是SHA256Cng
,我也会感兴趣。目前,要创建{ {1}}我们需要使用SHA256Cng
。)
答案 0 :(得分:1)
可能是因为框架版本。 SHA256Cng比SHA256Managed更新。一些细节在这里: Difference between SHA256CryptoServiceProvider and SHA256Managed
SHA256Cng具有FIPS规则。因此,您不能将此类用于某些加密/签名类。 SHA256Managed没有限制。 默认情况下,在OS上禁用FIPS。如果更改您的操作系统设置可能是默认的类更改: http://www.morgantechspace.com/2014/12/How-to-enable-FIPS-Compliant-algorithms.html