我想用Java做AES CBC加密。我在用javax.crypto。初始化Cipher之后,是否只需要调用清除字节上的doFinal才能正确加密它?还是我需要用update做点什么?
文档显示更新:
继续进行多部分加密或解密操作。
和doFinal
加密或解密单部件操作中的数据,或完成多部分操作。
他们所说的多部分加密到底是什么意思?
发布于 2010-03-12 21:06:57
doFinal在最后一个块中添加PKCS7 填充。所以您可以多次调用update 0,但最后一次调用应该是doFinal。多部分加密是指当数据在内存中不连续时。典型的例子是从套接字接收到的缓冲区。您设置了密码,然后开始调用update来加密或解密数据,逐块加密或解密数据,并通过追加update返回的块来构建加密/解密数据。在最后一个输入块上调用doFinal,返回的块是最后一个附加到输出数据的块。在氪星,doFinal将添加填充。在解密时,doFinal将验证并删除填充。
https://stackoverflow.com/questions/2435850
复制相似问题