我正在使用 Jose4j 在 Java 中执行 JSON Web Token 的加密。
我创建一个键作为 JSON 格式的字符串传递给JsonWebKey.Factory.newJwk
方法,因此:
String jwkJson = "{\"kty\":\"oct\",\"k\":\"5uP3r53cR37k3yPW\"}";
我把它传给工厂并得到JsonWebKey (jwk)
回报。然后将密钥(来自jwk.getKey()
方法)传递给 JsonWebEncryption 的setKey()
方法。我设置AlgorithmHeaderValue
和EncryptionMethodHeaderParameter
...
然后,当我调用jwe.getCompactSerialization()
它时会引发以下异常
org.jose4j.lang.InvalidKeyException:
Invalid key for JWE A128KW, expected a 128 bit key but a 96 bit key was provided.
我传入了 16 个字节,那么为什么这会计算为 128 的 96 位?