HashAlgorithm的“创建”方法的文档是否有缺陷?

时间:2015-08-04 18:38:02

标签: c# .net security hash cryptography

MSDN有一个表格,其中包含对该方法有效的值。但SHA1CryptoServiceProviderSHA1Cng即使不在列表中也会成功。

HashAlgorithm.Create("System.Security.Cryptography.SHA1Cng");

文档是不完整的,还是我误解了它们?

2 个答案:

答案 0 :(得分:4)

我不相信你误会了什么。文档似乎不仅不完整,而且不正确。

不仅有其他值返回哈希算法的实例,而且它使用的查找表会导致它抛出异常而不是返回null

例如,以下每个都会抛出InvalidCastException,但文档明确指出它应该返回null

System.Security.Cryptography.HashAlgorithm.Create("1.2.840.113549.1.9.3");
System.Security.Cryptography.HashAlgorithm.Create("Triple DES");
System.Security.Cryptography.HashAlgorithm.Create("X509Chain");

答案 1 :(得分:3)

因为MSDN文档不是最新的吗?

如果你想要完整列表,似乎你可以在第114和460行之间找到它here

如果您编译示例应用程序并使用ilspy查看方法调用,也可以看到它,您也可以从那里找到列表。

除了您提供的MSDN链接上列出的内容之外,还有更多可能的选择