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