HashAlgorithm 的不同之处在于新的 SHA256Managed() 与 SHA256Managed.Create()

What is different about HashAlgorithm is new SHA256Managed() vs. SHA256Managed.Create()

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

是的,我知道 1 是 "newed"(实例化),而另一个是 Create 方法,但似乎实现了相同的相同对象

HashAlgorithm sha2 = new SHA256Managed();

vs.            

SHA256 sha2 = SHA256Managed.Create();

"sha2"是不是一样?如果不是有什么区别,为什么写了 2 种类型?

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

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

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