1

我偶然发现了这个用于使用 JSON Web 加密的java nimbus-JOSE库。这个库很简单,需要几行 JWE 加密和解密,如下所示 JWE 加密。

EncryptedJWT jwt = new EncryptedJWT(header, builder.build());
  RSAEncrypter encrypter = new RSAEncrypter((RSAPublicKey) keyProvider.getDefaultPublicKey());
  try {
    jwt.encrypt(encrypter);
  } catch (JOSEException e) {
    throw new RuntimeException("Failed to generate encrypted token", e);
  return jwt.serialize();

但是,即使在阅读了它的 javadocs 和文档之后,我仍然对这个库有一些疑问。特别是关于 JWE 和这个库,

  1. 解密 JWE 后,如何验证 JWE 的真实性?JWE 中没有“签名”,那么 JWE 的 5 个部分如何帮助检查有效性?图书馆对此有任何支持吗?
  2. 除了标题和声明之外,JWT 中的其他字段是由库随机生成的吗?(我无法找到明确的证据。)
  3. 如果我使用 alg:“RSA-OAEP”,enc:“A128GCM”,我应该在每次加密时得到不同的 JWE,但是,我得到的是相同的 JWE。RSA-OEAP-256 不应该防止这种情况发生吗?加解密流程的详细顺序是什么?
  4. 我一直在尝试在 Javascript 中找到一个类似的库,但找不到像 nimbus-jose 这样的用于 java 的库。如果有人有建议,请在下面提供帮助!我感谢任何可以帮助我解决问题的人。欢迎所有输入。:)
4

0 回答 0