您是否可以使用WSS4J库从解密算法中获取部分解密数据?

时间:2016-01-13 15:21:11

标签: java encryption wss4j

我正在使用Java和Apache最新的带有128位AES解密的WSS4J库解密一些数据。

我使用正确的填充,解密算法和密码块模式设置了正确的密码。

然后我在加密数据字节上调用doFinal()并成功返回一个值。

我的问题是,它是否会返回仅部分解密的值?

例如,假设解密后前16个字节仍然混乱,但返回的其余数据已经成功解密,并且可以通过那里的预期数据进行人工读取。

这是否意味着我的解密过程可能存在问题?或者甚至不能从doFinal()步骤返回一个值,如果解密设置稍微有点什么东西?

如果我从doFinal()返回一个值,那意味着100%返回的数据是加密前的原始数据吗?

我正在解密来自网络服务电话的数据,网络服务的所有者声称我在解密过程中一定做错了,并且他们正在正确地发送数据。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。一个主要的例子是,如果您尝试使用错误的初始化向量(IV)在CBC模式下解密某些内容。这将导致第一部分被解密为无效。

这是由于IV如何与CBC mode中的第一个明文块进行异或。