C# Ubuntu 16.04上的System.Security.Cryptography.Csp

C# Ubuntu 16.04上的System.Security.Cryptography.Csp,c#,asp.net-core,cryptoapi,ubuntu-16.04,C#,Asp.net Core,Cryptoapi,Ubuntu 16.04,我有一个使用加密技术的ASP.NETCore1.0.0应用程序。我需要使用rsacyptoserviceprovider解密密钥。VisualStudio建议将System.Security.Cryptography.Csp4.0.0版添加到我的依赖项中。我接受,而且在Windows上一切正常。但是当我在Ubuntu 16.04上部署它时,CryptoServiceProvider的方法开始抛出PlatformNotSupportedException异常。我使用了错误的组件吗? 我发现有一个1

我有一个使用加密技术的ASP.NETCore1.0.0应用程序。我需要使用
rsacyptoserviceprovider
解密密钥。VisualStudio建议将
System.Security.Cryptography.Csp
4.0.0版添加到我的依赖项中。我接受,而且在Windows上一切正常。但是当我在Ubuntu 16.04上部署它时,CryptoServiceProvider的方法开始抛出
PlatformNotSupportedException
异常。我使用了错误的组件吗?
我发现有一个1.0.0版本。这就是我需要的吗?如何将其添加到我的项目中?

RSACryptoServiceProvider
基于CryptoAPI,一种Windows特定的非托管API。由于它在Linux上不可用,因此在运行时会引发
PlatformNotSupportedException
异常


< >请考虑引用<代码>系统.Security。加密。算法< /代码>,并使用<代码> RSA .CueRead()>代码>以获得与您的环境兼容的实现(在Linux上,您将得到一个<代码> RSAOPSINSL 实例)。

谢谢!代码>RSA工作正常。但我仍然不明白在NetStandart包中包含Windows特定工具的意义…不是每个人都需要或想要.NETCore中的跨平台支持。使用特定于实现的包允许直接使用
rsaccryptoserviceprovider
RSACng
rsacopenssl
,从而启用高级方案(例如,在使用
RSACng
时,您可以使用依赖于特定密钥存储提供商的
CngKey