我似乎遗漏了一些关于 Jwt 的东西。我遵循了这个SO answer,它有效。
但是,我的数据仍然没有加密。
我生成一个私钥:
`openssl genrsa -out privateKey.pem 512`
然后我(尝试)将其加密为 Jwt 令牌,使用以下命令:
string privateKey = File.ReadAllText(@"privateKey.pem");
RSAParameters rsaParams;
using (var tr = new StringReader(privateKey))
{
var pemReader = new PemReader(tr);
var keyPair = pemReader.ReadObject() as AsymmetricCipherKeyPair;
if (keyPair == null)
{
throw new Exception("Could not read RSA private key");
}
var privateRsaParams = keyPair.Private as RsaPrivateCrtKeyParameters;
rsaParams = DotNetUtilities.ToRSAParameters(privateRsaParams);
}
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(rsaParams);
//Dictionary<string, object> payload = claims.ToDictionary(k => k.Type, v => ect)v.Value);
return Jose.JWT.Encode(payload, rsa, Jose.JwsAlgorithm.RS256);
}
这会产生一个 Jwt。当我将该令牌带到 jwt.io 时,我得到了这个:
如您所见,有效负载是可见的,无需我提供解码它的密钥。
我做错了什么,不理解?