gpt4 book ai didi

javax.crypto AES 加密 - 我只需要调用 doFinal 吗?

转载 作者:行者123 更新时间:2023-11-30 05:59:48 24 4
gpt4 key购买 nike

我想用 Java 进行 AES CBC 加密。我正在使用 javax.crypto。初始化 Cipher 后,我是否只需要对明文字节调用 doFinal 即可对其进行正确加密?或者我需要对更新做一些事情吗?

文档说更新:

Continues a multiple-part encryption or decryption operation

和 doFinal

Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation

多部分加密到底是什么意思?

最佳答案

doFinal 添加了 PKCS7 padding在最后一个 block 中。因此,您可以调用 update 零到多次,但最后一次调用应该是 doFinal。多部分加密是指数据在内存中不连续的情况。典型的例子是从套接字接收的缓冲区。您设置密码,然后开始调用 update 来逐 block 加密或解密数据,并通过附加 update 返回的 block 来构建加密/解密的数据。在最后一个输入 block 上,您调用 doFinal ,返回的 block 是最后一个附加到输出数据的 block 。在加密时,doFinal 将添加填充。解密时,doFinal 将验证并删除填充。

关于javax.crypto AES 加密 - 我只需要调用 doFinal 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com