解密JWE时出错

时间:2016-02-10 18:45:57

标签: java encryption jwt jose4j jwe

JWE Decryption的新东西。我有一台服务器执行JWE并根据服务器和客户端之间共享的密钥将其发送到客户端。

我正在使用Jose4j进行解密并收到此错误

java.lang.NullPointerException:尚未设置JWE的明文有效负载。

我正在使用此链接中显示的示例代码,Receiver部分

https://bitbucket.org/b_c/jose4j/wiki/JWE%20Examples

我只是在编写客户端时对服务器没有任何了解。如果paylaod本身没有出现或者框架试图解密,我感到很困惑。

赞赏任何调试问题的指示

此致 阿拉汶

2 个答案:

答案 0 :(得分:1)

当没有设置有效负载时,仅从getCompactSerialization()方法抛出该特定异常 - getCompactSerialization()是发送/加密端以创建JWE的最后一步。如果你要解密,你不应该打电话给那个。也许你在某个地方遇到了意外的电话?否则,您使用的代码以及示例原始JWE值可能有助于麻烦(和密钥,如果它只是一个测试,您可以共享它们)。

答案 1 :(得分:0)

在获取纯文本有效负载之前,JWE需要2级解密。

首先是JWE到JWS。 验证签名后,从JWS到JWT。下面的代码将会这样做。

$conexion = @mysql_connect($servidor, $usuario, $contrasenha);
mysql_select_db($BD, $conexion) or die(mysql_error($conexion));
mysql_query("SET NAMES 'utf8'");