gpt4 book ai didi

c# - ASP.NET Core 3.1 SHA512 和 SHA256Managed 有什么区别

转载 作者:行者123 更新时间:2023-12-04 12:59:16 25 4
gpt4 key购买 nike

我目前正在使用 SHA256ManagedASP.NET Core 3.1为了更安全,我想使用 Hash512 .
Managed postfix 建议一个是托管代码,而另一个不是。

有人可以解释一下在使用非托管与托管时需要考虑的任何问题吗?非托管是否需要任何特殊部署,例如在 Docker 容器/或操作系统要求中。

    private string Hash512(string str) {
var message = Encoding.Unicode.GetBytes(str);
var hash = SHA512.Create();

var hashValue = hash.ComputeHash(message);
return Encoding.Unicode.GetString(hashValue);
}

public string Hash256(string str)
{
var message = Encoding.Unicode.GetBytes(str);
var hash = new SHA256Managed();

var hashValue = hash.ComputeHash(message);
return Encoding.Unicode.GetString(hashValue);
}

最佳答案

(我最初将其标记为 Difference between SHA256CryptoServiceProvider and SHA256Managed 的副本 - 但是这个问题特别是在 ASP.NET Core 3.x 的上下文中,这与链接的问题(Windows 上的 .NET Framework)不同。)
你把两个不同的东西混为一谈:

  • SHA256表示 SHA-2 加密散列函数的 256 位风格,而 SHA256Managed , SHA256CryptoServiceProviderSHA256Cng是它的实现。
  • SHA512表示 SHA-2 加密散列函数的 512 位风格,而 SHA512Managed , SHA512CryptoServiceProviderSHA512Cng是它的实现。

  • The differences between the 256-bit and 512-bit versions of SHA-2 are documented on Wikipedia .请注意,.NET 不支持 224 位版本,但支持 256、384 和 512 位版本。
    关于 SHA{bits}的区别(界面)和 SHA{bits}Managed , SHA{bits}CryptoServiceProviderSHA{bits}Cng :
  • .NET Framework 和 .NET Core 支持相同散列算法的多种不同实现,这可能是因为某些实现可能是硬件加速的,由操作系统提供,或者完全以 C#/托管代码实现。
  • SHA256是一个抽象基类,它定义了 SHA-2(256 位)散列函数的所有实现的接口(interface)。同上 SHA512对于 SHA-2(512 位)函数。
  • SHA256Managed (和 SHA512Managed )是 100% C#/托管代码实现,与 native 或操作系统提供的实现相比,运行速度确实很慢。这是 .NET Core 内置的唯一实现。
  • SHA256CryptoServiceProviderSHA256Cng是操作系统提供的实现,可用于提高性能或符合 FIPS(因为 SHA256Managed 不符合 FIPS)。如果您不知道是否需要担心 FIPS 合规性,那么您可能无需担心(即,除非您为美国联邦政府工作,或者您公司的法律团队已通知您项目的监管合规性)要求)。
  • 此外,SHA256CryptoServiceProviderSHA256Cng不是内置于 .NET Core,而是内置于 .NET Framework。

  • SHA256.Create() method 是一个工厂方法,旨在返回当前平台的“最佳”实现 - 在 .NET Core 中,它始终返回 SHA256Managed 的实例。 .
  • 关于c# - ASP.NET Core 3.1 SHA512 和 SHA256Managed 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070879/

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