Package org.miaixz.bus.crypto.cipher
Class JceCipher
java.lang.Object
org.miaixz.bus.core.lang.wrapper.SimpleWrapper<Cipher>
org.miaixz.bus.crypto.cipher.JceCipher
public class JceCipher
extends org.miaixz.bus.core.lang.wrapper.SimpleWrapper<Cipher>
implements Cipher
提供
Cipher的方法包装- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.miaixz.bus.crypto.Cipher
Cipher.Parameters -
Field Summary
Fields inherited from class org.miaixz.bus.core.lang.wrapper.SimpleWrapper
raw -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintdoFinal(byte[] out, int outOff) 处理最后一块数据 当Cipher.process(byte[], int, int, byte[], int)处理完数据后非完整块数据,此方法用于处理块中剩余的bytes 如加密数据要求128bit,即16byes的整数,单数处理数据后为15bytes,此时根据padding方式不同,可填充剩余1byte为指定值(如填充0) 当对数据进行分段加密时,需要首先多次执行process方法,在最后一块数据处理完后执行此方法。获取算法名称int获取块大小,当为Stream方式加密时返回0intgetOutputSize(int len) 根据输入长度,获取输出长度,输出长度与算法相关 输出长度只针对本次输入关联,即len长度的数据对应输出长度加doFinal的长度voidinit(int mode, JceCipher.JceParameters jceParameters) 执行初始化参数操作voidinit(org.miaixz.bus.core.lang.Algorithm.Type mode, Cipher.Parameters parameters) 初始化模式和参数intprocess(byte[] in, int inOff, int len, byte[] out, int outOff) 执行运算,可以是加密运算或解密运算byte[]processFinal(byte[] data) 处理数据,并返回最终结果Methods inherited from class org.miaixz.bus.core.lang.wrapper.SimpleWrapper
getRaw
-
Constructor Details
-
JceCipher
构造- Parameters:
algorithm- 算法名称
-
JceCipher
构造- Parameters:
cipher-Cipher,可以通过Cipher.getInstance(String)创建
-
-
Method Details
-
getAlgorithmName
Description copied from interface:Cipher获取算法名称- Specified by:
getAlgorithmNamein interfaceCipher- Returns:
- 算法名称
-
getBlockSize
public int getBlockSize()Description copied from interface:Cipher获取块大小,当为Stream方式加密时返回0- Specified by:
getBlockSizein interfaceCipher- Returns:
- 块大小,-1表示非块加密
-
getOutputSize
public int getOutputSize(int len) Description copied from interface:Cipher根据输入长度,获取输出长度,输出长度与算法相关 输出长度只针对本次输入关联,即len长度的数据对应输出长度加doFinal的长度- Specified by:
getOutputSizein interfaceCipher- Parameters:
len- 输入长度- Returns:
- 输出长度,-1表示非块加密
-
init
Description copied from interface:Cipher初始化模式和参数 -
init
public void init(int mode, JceCipher.JceParameters jceParameters) throws InvalidAlgorithmParameterException, InvalidKeyException 执行初始化参数操作- Parameters:
mode- 模式jceParameters-JceCipher.JceParameters- Throws:
InvalidAlgorithmParameterException- 无效算法参数InvalidKeyException- 无效key
-
process
public int process(byte[] in, int inOff, int len, byte[] out, int outOff) Description copied from interface:Cipher执行运算,可以是加密运算或解密运算 -
doFinal
public int doFinal(byte[] out, int outOff) Description copied from interface:Cipher处理最后一块数据 当Cipher.process(byte[], int, int, byte[], int)处理完数据后非完整块数据,此方法用于处理块中剩余的bytes 如加密数据要求128bit,即16byes的整数,单数处理数据后为15bytes,此时根据padding方式不同,可填充剩余1byte为指定值(如填充0) 当对数据进行分段加密时,需要首先多次执行process方法,在最后一块数据处理完后执行此方法。 -
processFinal
public byte[] processFinal(byte[] data) Description copied from interface:Cipher处理数据,并返回最终结果- Specified by:
processFinalin interfaceCipher- Parameters:
data- 输入数据- Returns:
- 结果数据
-