diff --git a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/Cipher.java b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/Cipher.java
index f3167f3a5..38565b93c 100644
--- a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/Cipher.java
+++ b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/Cipher.java
@@ -19,7 +19,11 @@ package org.dromara.hutool.crypto;
import java.util.Arrays;
/**
- * 密码接口,提供统一的API,用于兼容和统一JCE和BouncyCastle等库的操作
+ * 密码接口,提供统一的API,用于兼容和统一JCE和BouncyCastle等库的操作
+ *
+ * - process和doFinal组合使用,用于分块加密或解密
+ * - processFinal默认处理并输出小于块的数据,或一次性数据
+ *
*
* @author Looly
* @since 6.0.0
diff --git a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/JceCipher.java b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/JceCipher.java
index c2514dcc8..473a9c0ea 100644
--- a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/JceCipher.java
+++ b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/JceCipher.java
@@ -112,6 +112,38 @@ public class JceCipher extends SimpleWrapper implements Cip
}
}
+ // region ----- process
+ /**
+ * 继续多部分加密或解密操作(取决于此密码的初始化方式),处理另一个数据部分。
+ * 第一inputLen字节在input缓冲区中,从inputOffset以下,被处理,并且结果被存储在output缓冲器。
+ *
+ * @param in 输入缓冲区
+ * @param inOff 输入开始的 input中的偏移量
+ * @param len 输入长度
+ * @return 带有结果的新缓冲区,如果底层密码是块密码且输入数据太短而不能产生新块,则返回null。
+ */
+ public byte[] process(final byte[] in, final int inOff, final int len) {
+ return this.raw.update(in, inOff, len);
+ }
+
+ /**
+ * 继续多部分加密或解密操作(取决于此密码的初始化方式),处理另一个数据部分。
+ * 第一inputLen字节在input缓冲区中,从inputOffset以下,被处理,并且结果被存储在output缓冲器。
+ *
+ * @param in 输入缓冲区
+ * @param inOff 输入开始的 input中的偏移量
+ * @param len 输入长度
+ * @param out 结果的缓冲区
+ * @return 存储在 output的字节数
+ */
+ public int process(final byte[] in, final int inOff, final int len, final byte[] out) {
+ try {
+ return this.raw.update(in, inOff, len, out);
+ } catch (final ShortBufferException e) {
+ throw new CryptoException(e);
+ }
+ }
+
@Override
public int process(final byte[] in, final int inOff, final int len, final byte[] out, final int outOff) {
try {
@@ -120,6 +152,7 @@ public class JceCipher extends SimpleWrapper implements Cip
throw new CryptoException(e);
}
}
+ // endregion
@Override
public int doFinal(final byte[] out, final int outOff) {