Подлинность JWE nimbus-JOSE и аналог JavaScript

Я случайно наткнулся на эту замечательную библиотеку для java nimbus-JOSE для использования JSON Web Encryption. Эта библиотека проста и требует нескольких строк для шифрования и дешифрования 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 нет "подписей", так как же 5 частей JWE помогают проверить правильность? Есть ли поддержка этого в библиотеке?
  2. Помимо заголовка и заявлений, генерируются ли библиотекой другие поля в JWT случайным образом? (Я не смог найти четких доказательств этого.)
  3. Если я использую alg: "RSA-OAEP", enc: "A128GCM", я должен получать другой JWE каждый раз при шифровании, однако я получал тот же самый JWE. Разве RSA-OEAP-256 не должен предотвращать это? Какова подробная последовательность потока шифрования и дешифрования?
  4. Я пытался найти аналогичную библиотеку в Javascript, но не смог найти такую, как nimbus-jose, предназначенную для java. Если у кого-то есть рекомендация, пожалуйста, помогите ниже! Я благодарю всех, кто может помочь с моими вопросами. Все предложения приветствуются.:)

0 ответов

Другие вопросы по тегам