java - 如何在java中使用私钥解密JWE(Json Web Encryption)数据
问题描述
我有一个类似于下面的私钥
例如
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGBRdsiDqKPGyH
gOpzxmSU2EQkm+zYZLvlPlwkwyfFWLndFLZ3saxJS+LIixsFhunrrUT9ZZ0x+bB6
MV55o70z4ABOJRFNWx1wbMGqdiC0Fyfpwad3iYpRVjZO+5etHA9JEoaTPoFxv+kt
QwBjBRAJ3Y5jtrESprGdUFRb0oavDHuBtWUt2XmXspWgtRn1xC8sXZExDdxmJRPA
ADTO3rrGo9hicG/WKGzSHD5l1f+IO1SfmUN/6i2JjcnE07eYArNrCfbMgkFavj50
2ne2fSaYM4p0o147O9Ty8jCyY9vuh/ZGid6qUe3TBI6/okWfmYw6FVbRpNfVEeG7
kPfkDW/JdH7qkWTFbh3eH1k=
-----END PRIVATE KEY-----
我有一个如下的 JWE 数据,它是使用从上面的私钥/证书生成的公钥加密的
aaaaa.bbbbb.ccccc.ddddd.eeeee
有人可以给我java代码,我可以用我的私钥来解密这个JWE吗?我无法从互联网上找到明确的答案。如果对这个 JWE 概念不熟悉,我很友善
解决方案
由于您对此问题的其他问题和标签,我假设您选择了库 Nimbus JOSE + JWT。无论您的 JWT 框架如何,我都建议您使用提供的方法来加密/解密您的令牌,因为它们会验证令牌的结构。
RSAPrivateKey privateKey; //initialize with your key
String jwtTokenAsString = "aaaaa.bbbbb.ccccc.ddddd.eeeee"; //your token
EncryptedJWT encryptedJWT = EncryptedJWT.parse(jwtTokenAsString);
RSADecrypter decrypter = new RSADecrypter(privateKey);
encryptedJWT.decrypt(decrypter);
//Access content with diffrent methods
JWTClaimsSet claims = encryptedJWT.getJWTClaimsSet();
Payload payload = encryptedJWT.getPayload();
推荐阅读
- angular - cb() 在安装 angular/cli 时从未调用错误
- firebase - 如何将图像上传到firebase存储然后将图像url存储在firestore中?
- password-protection - 进入被监视的随机数序列种子
- c# - 为什么在层次结构中选择不同的对象时相机会卡顿?
- javascript - 在 mongoDB 查询中使用字段时显示错误
- ruby - 为什么将用户输入转换为整数时,Crystal 中需要 .to_s 方法?
- c - 如何在C中修剪字符串中的空格?
- mysql - NodeJS + MySql 和大并发访问
- python - 使用mutual_info回归进行特征选择时重塑错误
- php - 我如何使用此代码重定向到用户主页