有关HashAlgorithm的不同之处是新的SHA256Managed()与SHA256Managed.Create()

时间:2016-05-19 23:08:39

标签: c# hash sha256 sha

我似乎看到SHA-2以两种不同的方式完成。

是的,我得到1是“newed”(实例化)而不是另一个创建方法但似乎实现了相同的相同对象

HashAlgorithm sha2 = new SHA256Managed();

vs.            

SHA256 sha2 = SHA256Managed.Create();

“sha2”的行为是否相同?如果没有什么区别,为什么有两种类型?

1 个答案:

答案 0 :(得分:2)

.Create方法可能会为您提供平台优化的实现版本(尽管Microsoft的当前代码可能不会在所有可能的位置使用该机会)。

例如,如果在具有硬件加密支持的计算机上进行此调用,则可能会返回特定于硬件的版本。

因此,避免在您自己的代码中使用特定实现是一个更好的选择。