Package org.aoju.bus.crypto.digest
Class Digester
java.lang.Object
org.aoju.bus.crypto.digest.Digester
- All Implemented Interfaces:
Serializable
摘要算法
注意:此对象实例化后为非线程安全!
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int散列次数protected byte[]盐值protected int加盐位置,即将盐值字符串放置在数据的index数,默认0 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]digest(byte[] data) 生成摘要,考虑加盐和重复摘要次数byte[]生成文件摘要 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZEbyte[]digest(InputStream data) 生成摘要,使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZEbyte[]digest(InputStream data, int bufferLength) 生成摘要byte[]生成文件摘要byte[]生成文件摘要byte[]生成文件摘要digestHex(byte[] data) 生成摘要,并转为16进制字符串生成文件摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZEdigestHex(InputStream data) 生成摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZEdigestHex(InputStream data, int bufferLength) 生成摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE生成文件摘要生成文件摘要,并转为16进制字符串生成文件摘要,并转为16进制字符串int获取散列长度,0表示不支持此方法初始化reset()setDigestCount(int digestCount) 设置重复计算摘要值次数setSalt(byte[] salt) 设置加盐内容setSaltPosition(int saltPosition) 设置加盐的位置,只有盐值存在时有效 加盐的位置指盐位于数据byte数组中的位置,例如:
-
Field Details
-
salt
protected byte[] salt盐值 -
saltPosition
protected int saltPosition加盐位置,即将盐值字符串放置在数据的index数,默认0 -
digestCount
protected int digestCount散列次数
-
-
Constructor Details
-
Digester
构造- Parameters:
algorithm- 算法枚举
-
Digester
public Digester(org.aoju.bus.core.lang.Algorithm algorithm) 构造- Parameters:
algorithm- 算法枚举
-
Digester
构造- Parameters:
algorithm- 算法provider- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持
-
Digester
构造- Parameters:
algorithm- 算法provider- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持
-
-
Method Details
-
init
初始化- Parameters:
algorithm- 算法provider- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持- Returns:
- Digester
- Throws:
org.aoju.bus.core.exception.CryptoException- Cause by IOException
-
setSalt
设置加盐内容- Parameters:
salt- 盐值- Returns:
- this
-
setSaltPosition
设置加盐的位置,只有盐值存在时有效 加盐的位置指盐位于数据byte数组中的位置,例如:data: 0123456
则当saltPosition = 2时,盐位于data的1和2中间,即第二个空隙,即:
data: 01[salt]23456
- Parameters:
saltPosition- 盐的位置- Returns:
- this
-
setDigestCount
设置重复计算摘要值次数- Parameters:
digestCount- 摘要值次数- Returns:
- this
-
reset
- Returns:
- this
-
digest
生成文件摘要- Parameters:
data- 被摘要数据charsetName- 编码- Returns:
- 摘要
-
digest
生成文件摘要- Parameters:
data- 被摘要数据charset- 编码- Returns:
- 摘要
-
digest
生成文件摘要- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digestHex
生成文件摘要,并转为16进制字符串- Parameters:
data- 被摘要数据charsetName- 编码- Returns:
- 摘要
-
digestHex
生成文件摘要,并转为16进制字符串- Parameters:
data- 被摘要数据charset- 编码- Returns:
- 摘要
-
digestHex
生成文件摘要- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
生成文件摘要 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE- Parameters:
file- 被摘要文件- Returns:
- 摘要bytes
- Throws:
org.aoju.bus.core.exception.CryptoException- Cause by IOException
-
digestHex
生成文件摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE- Parameters:
file- 被摘要文件- Returns:
- 摘要
-
digest
public byte[] digest(byte[] data) 生成摘要,考虑加盐和重复摘要次数- Parameters:
data- 数据bytes- Returns:
- 摘要bytes
-
digestHex
生成摘要,并转为16进制字符串- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
生成摘要,使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE- Parameters:
data-InputStream数据流- Returns:
- 摘要bytes
-
digestHex
生成摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE- Parameters:
data- 被摘要数据- Returns:
- 摘要
-
digest
public byte[] digest(InputStream data, int bufferLength) throws org.aoju.bus.core.exception.CryptoException 生成摘要- Parameters:
data-InputStream数据流bufferLength- 缓存长度,不足1使用IoKit.DEFAULT_BUFFER_SIZE做为默认值- Returns:
- 摘要bytes
- Throws:
org.aoju.bus.core.exception.CryptoException- IO异常
-
digestHex
生成摘要,并转为16进制字符串 使用默认缓存大小,见IoKit.DEFAULT_BUFFER_SIZE- Parameters:
data- 被摘要数据bufferLength- 缓存长度,不足1使用IoKit.DEFAULT_BUFFER_SIZE做为默认值- Returns:
- 摘要
-
getDigest
- Returns:
MessageDigest
-
getDigestLength
public int getDigestLength()获取散列长度,0表示不支持此方法- Returns:
- 散列长度,0表示不支持此方法
-