gpt4 book ai didi

c# - SHA256.Create() 和 HashAlgorithm.Create ("SHA-256"之间有什么区别吗?

转载 作者:行者123 更新时间:2023-12-02 00:56:48 27 4
gpt4 key购买 nike

这两个代码块返回相同的东西吗?假设 arr 在两个例子中都是相同的 byte[]:

代码示例 1

HashAlgorithm a = HashAlgorithm.Create("SHA-256");
var result = a.ComputeHash(arr);

代码示例 2

SHA256 b = SHA256.Create();
var result = b.ComputeHash(arr);

更新:我得到了在 C# 中创建 AWS 签名代码的示例项目(用 .Net 4.5 编写)并试图在 dotnetcode5 项目中使用它的类,只是因为 HashAlgorithm.Create() 不可用在 dotnetcode5 中,我决定使用第二种方法而不是第一种方法。问题在于第二个示例返回的规范结果在 AWS 中无效。

最佳答案

SHA256.Create() 在内部执行此操作:

return (HashAlgorithm) CryptoConfig.CreateFromName("System.Security.Cryptography.SHA256");

HashAlgorithm.Create("SHA-256") 将产生以下结果:

return (SHA256) CryptoConfig.CreateFromName("SHA-256");

这两个调用都会导致创建一个 SHA256Managed 的实例。 .

参见 https://msdn.microsoft.com/en-us/library/system.security.cryptography.cryptoconfig(v=vs.110).aspx#Anchor_5

所以这两种方法之间没有区别。

关于c# - SHA256.Create() 和 HashAlgorithm.Create ("SHA-256"之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com