为什么SHA-1的Create()方法的行为与SHA-256的行为不同?

时间:2015-08-04 18:35:40

标签: c# .net security hash cryptography

为什么Create() - SHA类型 1 Cng方法返回CryptoServiceProvider,而SHA 256 >返回Managed

换句话说:为什么SHA 1 Cng.Create()返回SHA1CryptoServiceProvider,而SHA 256 Cng.Create()返回SHA256Managed?)

(如果您可以解释为什么SHA256Cng.Create()被实施来创建SHA256Managed而不是SHA256Cng,我也会感兴趣。目前,要创建{ {1}}我们需要使用SHA256Cng。)

1 个答案:

答案 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