【发布时间】:2022-06-20 09:04:49
【问题描述】:
我需要生成一个带有私钥的 RsaSecurityKey 来签署 JWT。
我的代码在 net5.0 中工作,但我需要该代码在 .net 标准/框架库中工作。
这是工作代码:
private static RsaSecurityKey GetRsaKey(byte[] privateKey)
{
using RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);
rsa.ImportRSAPrivateKey(new ReadOnlySpan<byte>(privateKey), out int _);
RSAParameters @params = rsa.ExportParameters(true);
return new RsaSecurityKey(@params);
}
很遗憾,rsa.ImportRSAPrivateKey 在 .net Standard 中不可用。
我还没有找到如何替换那块。
有人知道我们是如何使用 .net Framework 做到这一点的吗?
谢谢。
【问题讨论】:
-
你可以在
Web.config中定义private key并从中获取。 -
@MukarramJavid 仅适用于 .net framework asp.net,不适用于 .net core
-
一种方便的方法是使用 BouncyCastle 并导入 PKCS#1 密钥,例如
PemReader. -
@DanielA.White 它也适用于 .NET 5.0。从
ConfigurationManager类中读取 appSetting.json 中的Keys