我在 C# 上使用 Jose-Jwt 许可证,并且我有以下代码:
private string DecodeJWT(string token)
{
string privateKeyPath = ConfigurationManager.AppSettings["PrivateKey"];
var privateRSA = RsaProviderFromPrivateKeyInPemFile(privateKeyPath);
string json = Jose.JWT.Decode(token,privateRSA, Jose.JweAlgorithm.RSA_OAEP, Jose.JweEncryption.A256GCM);
return json;
}
private RSACryptoServiceProvider RsaProviderFromPrivateKeyInPemFile(string privateKeyPath)
{
using (TextReader privateKeyTextReader = new StringReader(System.IO.File.ReadAllText(privateKeyPath)))
{
PemReader pr = new PemReader(privateKeyTextReader);
RSAParameters rsaParams = DotNetUtilities.ToRSAParameters((RsaPrivateCrtKeyParameters)pr.ReadObject());
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
csp.ImportParameters(rsaParams);
return csp;
}
}
但是我没有设法解密加密的字符串。它在解码后返回相同的加密字符串。谁能告诉我可能做错了什么?我实际上正在遵循此Q/A 的建议
它似乎对我不起作用。:(