0

我正在使用 java 代码使用 nimbus jar 文件生成 JWE 令牌,但我无法生成预期的标头 JWE 令牌,请你们帮我生成预期的令牌。

static String  PUBLIC_KEY ="askjdbaskjbdjkasbkjdbaskjbdasjkbdkjsabdjkaskjdbaskjdbaskjbd";
public static void main(){
    JSONObject obj = new JSONObject();
        obj.put("typ", "JWT");
        obj.put("cty", "JWT");
        obj.put("enc", "A128CBC-HS256");
        obj.put("alg", "RSA-OAEP");
    
        
//      JWEHeader head = (JWEHeader) Header.parse(JSON);
        JWEHeader header = JWEHeader.parse(obj);
        System.out.println(header.getContentType());
        JWEObject jwe = new JWEObject(header,new Payload("Hello, world!"));
        EncryptionMethod enc = EncryptionMethod.A128CBC_HS256;
        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        keyGenerator.init(enc.cekBitLength());
        SecretKey cek = keyGenerator.generateKey();
            jwe.encrypt(new RSAEncrypter(getPublicKey(PUBLIC_KEY),cek));
            String jweString = jwe.serialize();
            System.out.println(jweString);
}

当我生成令牌时,我得到这样的令牌:

eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ.ITv2i07ctBtWR8T6D63yyHE7QXIw5paeYpLYYGjN2wx9Pq5IBiYxWJBNoynZyCSC-MSFiTl55EOs1mB1qCjz0z2f25DFsnDocHJ7xNfmL5_slRCpdJX-InTcVm4NSnU2iVxaxAP5ODFrlJIgLCqICMq0MaAT8wSXAkaoVJx6MH9MRmhJzsdxCvoZaj5lu83HSL_FEveVvXt4Bk3Zq9DipVPlcbog5t1I8We8tscMW6QsOM47xxIQxmQscHOkufFkMCQOUi-LwFu4k7f6vIcASc3jbJ9VwGCPehIef0PjwQPxiO7W8tmKjcIeAF6ytYUC2nEPUwpsMZVNIaGcNPSU-w.22YugdfNWVlHWJS3OR8aiQ.S1anurm9Dim2-lV5QbNvAA.Dvfn31gFhqKbkoU3ZVGNXQ 

但标题是这样生成的,但我不希望 JWE 令牌中出现这种类型的标题:

eyJjdHkiOiJKV1QiLCJ0eXAiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAifQ

我想使用上面的 java 代码生成这样的标题:

eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ

你们能帮我在这里生成像上面这样的标题吗?

谢谢。

4

0 回答 0