System.Security.Cryptography.Csp 在 Ubuntu 16.04

System.Security.Cryptography.Csp on Ubuntu 16.04

我有 ASP.Net 核心 1.0.0 应用程序使用密码学。我需要使用 RSACryptoServiceProvider 解密密钥。 Visual Studio 建议将 System.Security.Cryptography.Csp 版本 4.0.0 添加到我的依赖项中。我接受,在 Windows 上一切正常。但是当我在 Ubuntu 16.04 上部署它时,RSACryptoServiceProvider 的方法开始抛出 PlatformNotSupportedException 异常。我使用了错误的程序集吗? 我找到 https://github.com/dotnet/corefx/tree/v1.0.0/src/System.Security.Cryptography.Csp 并且有 1.0.0 版本。那是我需要的吗?如何将它添加到我的项目中?

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

相反,请考虑引用 System.Security.Cryptography.Algorithms 并使用 RSA.Create() 来获得与您的环境兼容的实现(在 Linux 上,您将获得一个 RSAOpenSsl 实例)。