Package org.miaixz.bus.crypto
Interface Cipher
public interface Cipher
密码接口,提供统一的API,用于兼容和统一JCE和BouncyCastle等库的操作
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceCipher所需参数,包括Key、Random、IV等信息 -
Method Summary
Modifier and TypeMethodDescriptionintdoFinal(byte[] out, int outOff) 处理最后一块数据 当process(byte[], int, int, byte[], int)处理完数据后非完整块数据,此方法用于处理块中剩余的bytes 如加密数据要求128bit,即16byes的整数,单数处理数据后为15bytes,此时根据padding方式不同,可填充剩余1byte为指定值(如填充0) 当对数据进行分段加密时,需要首先多次执行process方法,在最后一块数据处理完后执行此方法。获取算法名称int获取块大小,当为Stream方式加密时返回0intgetOutputSize(int len) 根据输入长度,获取输出长度,输出长度与算法相关 输出长度只针对本次输入关联,即len长度的数据对应输出长度加doFinal的长度voidinit(org.miaixz.bus.core.lang.Algorithm.Type mode, Cipher.Parameters parameters) 初始化模式和参数intprocess(byte[] in, int inOff, int len, byte[] out, int outOff) 执行运算,可以是加密运算或解密运算default byte[]processFinal(byte[] in) 处理数据,并返回最终结果
-
Method Details
-
getAlgorithmName
String getAlgorithmName()获取算法名称- Returns:
- 算法名称
-
getBlockSize
int getBlockSize()获取块大小,当为Stream方式加密时返回0- Returns:
- 块大小,-1表示非块加密
-
init
初始化模式和参数- Parameters:
mode- 模式,如加密模式或解密模式parameters- Cipher所需参数,包括Key、Random、IV等信息
-
getOutputSize
int getOutputSize(int len) 根据输入长度,获取输出长度,输出长度与算法相关 输出长度只针对本次输入关联,即len长度的数据对应输出长度加doFinal的长度- Parameters:
len- 输入长度- Returns:
- 输出长度,-1表示非块加密
-
process
int process(byte[] in, int inOff, int len, byte[] out, int outOff) 执行运算,可以是加密运算或解密运算- Parameters:
in- 输入数据inOff- 输入数据开始位置len- 被处理数据长度out- 输出数据outOff- 输出数据开始位置- Returns:
- 处理长度
-
doFinal
int doFinal(byte[] out, int outOff) 处理最后一块数据 当process(byte[], int, int, byte[], int)处理完数据后非完整块数据,此方法用于处理块中剩余的bytes 如加密数据要求128bit,即16byes的整数,单数处理数据后为15bytes,此时根据padding方式不同,可填充剩余1byte为指定值(如填充0) 当对数据进行分段加密时,需要首先多次执行process方法,在最后一块数据处理完后执行此方法。- Parameters:
out- 经过process执行过运算的结果数据outOff- 数据处理开始位置- Returns:
- 处理长度
-
processFinal
default byte[] processFinal(byte[] in) 处理数据,并返回最终结果- Parameters:
in- 输入数据- Returns:
- 结果数据
-