C# 无法为Rfc2898DeriveBytes指定4个参数(哈希算法名称)

C# 无法为Rfc2898DeriveBytes指定4个参数(哈希算法名称),c#,.net-core,.net-standard,C#,.net Core,.net Standard,根据文档,我应该能够使用自定义哈希算法创建Rfc2898DeriveBytes(在我的例子中是SHA256): 我创建了一个.NET标准2.0类库,其中包含以下内容: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> </Proj

根据文档,我应该能够使用自定义哈希算法创建
Rfc2898DeriveBytes
(在我的例子中是SHA256):

我创建了一个.NET标准2.0类库,其中包含以下内容:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>
我得到以下错误:

“Rfc2898DeriveBytes”不包含接受4个参数的构造函数


为什么我不能将哈希算法添加到
Rfc2898DeriveBytes
的构造函数中?

您发布的链接是针对.NET Framework的,而不是.NET标准的。NET标准的文档。在.NET标准中,没有具有4个参数的构造函数。

哇,我想我错过了顶部的小版本切换选择列表。谢谢值得一提的是,这个带有HashAlgorithmName的API将成为.NET标准2.1的一部分。我无法使用.NET标准2.1,因为我需要在.NET Framework 4.8和.NET Core之间共享库。有什么建议吗?第三方图书馆?
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>
private static byte[] Pbkdf2(string data)
{
    // ...
    using(var pbkdf2 = new Rfc2898DeriveBytes(null, null, 50000, HashAlgorithmName.SHA256))
    {
        return pbkdf2.GetBytes(32);
    }
}