Package org.miaixz.bus.crypto.center
Class Mac
java.lang.Object
org.miaixz.bus.crypto.center.Mac
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
HMac
MAC摘要算法(此类兼容和JCE的
javax.crypto.Mac对象和BC库的org.bouncycastle.crypto.Mac对象)
MAC,全称为“Message Authentication Code”,中文名“消息鉴别码”
主要是利用指定算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
一般的,消息鉴别码用于验证传输于两个共同享有一个密钥的单位之间的消息。
注意:此对象实例化后为非线程安全!- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]digest(byte[] data) 生成摘要byte[]生成文件摘要 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZEbyte[]digest(InputStream data) 生成摘要,使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZEbyte[]digest(InputStream data, int bufferLength) 生成摘要byte[]生成文件摘要byte[]生成文件摘要digestBase64(String data, boolean isUrlSafe) 生成文件摘要,并转为Base64digestBase64(String data, Charset charset, boolean isUrlSafe) 生成文件摘要,并转为Base64digestHex(byte[] data) 生成摘要,并转为16进制字符串生成文件摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZEdigestHex(InputStream data) 生成摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZEdigestHex(InputStream data, int bufferLength) 生成摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE生成文件摘要生成文件摘要,并转为16进制字符串获取算法获得MAC算法引擎int获取MAC算法块长度booleanverify(byte[] digest, byte[] digestToCompare) 验证生成的摘要与给定的摘要比较是否一致 简单比较每个byte位是否相同
-
Constructor Details
-
Mac
构造- Parameters:
engine- MAC算法实现引擎
-
-
Method Details
-
getEngine
获得MAC算法引擎- Returns:
- MAC算法引擎
-
digest
生成文件摘要- Parameters:
data- 被摘要数据charset- 编码- Returns:
- 摘要
-
digest
生成文件摘要- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digestBase64
生成文件摘要,并转为Base64- Parameters:
data- 被摘要数据isUrlSafe- 是否使用URL安全字符- Returns:
- 摘要
-
digestBase64
生成文件摘要,并转为Base64- Parameters:
data- 被摘要数据charset- 编码isUrlSafe- 是否使用URL安全字符- Returns:
- 摘要
-
digestHex
生成文件摘要,并转为16进制字符串- Parameters:
data- 被摘要数据charset- 编码- Returns:
- 摘要
-
digestHex
生成文件摘要- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
生成文件摘要 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE- Parameters:
file- 被摘要文件- Returns:
- 摘要bytes
- Throws:
org.miaixz.bus.core.lang.exception.CryptoException- Cause by IOException
-
digestHex
生成文件摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE- Parameters:
file- 被摘要文件- Returns:
- 摘要
-
digest
public byte[] digest(byte[] data) 生成摘要- Parameters:
data- 数据bytes- Returns:
- 摘要bytes
-
digestHex
生成摘要,并转为16进制字符串- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
生成摘要,使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE- Parameters:
data-InputStream数据流- Returns:
- 摘要bytes
-
digestHex
生成摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
生成摘要- Parameters:
data-InputStream数据流bufferLength- 缓存长度,不足1使用Normal.DEFAULT_BUFFER_SIZE做为默认值- Returns:
- 摘要bytes
-
digestHex
生成摘要,并转为16进制字符串 使用默认缓存大小,见Normal.DEFAULT_BUFFER_SIZE- Parameters:
data- 被摘要数据bufferLength- 缓存长度,不足1使用Normal.DEFAULT_BUFFER_SIZE做为默认值- Returns:
- 摘要
-
verify
public boolean verify(byte[] digest, byte[] digestToCompare) 验证生成的摘要与给定的摘要比较是否一致 简单比较每个byte位是否相同- Parameters:
digest- 生成的摘要digestToCompare- 需要比较的摘要- Returns:
- 是否一致
- See Also:
-
getMacLength
public int getMacLength()获取MAC算法块长度- Returns:
- MAC算法块长度
-
getAlgorithm
获取算法- Returns:
- 算法
-