我需要创建需要使用 Google 提供的密钥进行签名的自定义令牌。密钥以文本形式提供,例如-----BEGIN PRIVATE KEY-----\nMIIE....
我通过使用 BouncyCastle 读取 PEM 密钥并获取 RSA 密钥来完成此工作,但现在我需要这个项目在 Linux 下运行,所以我不能使用 BouncyCastle,因为它只能在 Windows 下工作(它使用 RSACryptoServiceProvider)。
那么,有没有一种方法可以实现相同的结果,但仅使用 .NET Standard 代码呢?
我已经尝试将 PEM 文件转换为 PFX 文件,但我没有任何证书。尝试从此处或此处获取证书不起作用(OpenSSL 表示证书不属于所提供的密钥)。
您可以将 PEM 文件转换为 p12 文件并使用该 p12 签署您的 JWT
var payload = new Dictionary<string, object>()
{
{ "sub", "mr.x@contoso.com" },
{ "exp", 1300819380 }
};
var privateKey=new X509Certificate2("my-key.p12", "password").GetRSAPrivateKey();
string token=Jose.JWT.Encode(payload, privateKey, JwsAlgorithm.RS256);
Run Code Online (Sandbox Code Playgroud)
这是详细信息链接https://github.com/dvsekhvalnov/jose-jwt#rs--and-ps--family
| 归档时间: |
|
| 查看次数: |
9103 次 |
| 最近记录: |