我正在使用 Java 和 Apache 最新的带有 128 位 AES 解密的 WSS4J 库来解密一些数据。
我使用正确的填充、解密算法和密码块模式设置了看起来正确的密码。
然后我对加密的数据字节调用 doFinal() 并成功返回一个值。
我的问题是它会返回一个仅部分解密的值吗?
例如,假设前 16 个字节在解密后仍然是混乱的,但返回的数据的其余部分已成功解密,并且那里的预期数据是人类可读的。
这是否意味着我的解密过程可能存在问题?或者,如果解密设置稍有偏差,它甚至无法从 doFinal() 步骤返回一个值?
如果我从 doFinal() 返回一个值,这是否意味着返回的数据 100% 是加密之前的原始数据?
我正在从 Web 服务调用中解密数据,而 Web 服务的所有者声称我在解密过程中一定做错了,并且他们正在正确发送数据。