MSDN有一个表格,其中包含对该方法有效的值。但SHA1CryptoServiceProvider
和SHA1Cng
即使不在列表中也会成功。
即
HashAlgorithm.Create("System.Security.Cryptography.SHA1Cng");
文档是不完整的,还是我误解了它们?
答案 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链接上列出的内容之外,还有更多可能的选择