public class Digester extends Object implements Serializable
Modifier and Type | Field and Description |
---|---|
protected int |
digestCount
散列次数
|
protected byte[] |
salt
盐值
|
protected int |
saltPosition
加盐位置,即将盐值字符串放置在数据的index数,默认0
|
Constructor and Description |
---|
Digester(DigestAlgorithm algorithm)
构造
|
Digester(DigestAlgorithm algorithm,
Provider provider)
构造
|
Digester(MessageDigest messageDigest)
构造
|
Digester(String algorithm)
构造
|
Digester(String algorithm,
Provider provider)
构造
|
Modifier and Type | Method and Description |
---|---|
byte[] |
digest(byte[] data)
生成摘要,考虑加盐和重复摘要次数
|
byte[] |
digest(File file)
生成文件摘要
使用默认缓存大小,见 NioUtil.DEFAULT_BUFFER_SIZE |
byte[] |
digest(InputStream data)
生成摘要,使用默认缓存大小,见
NioUtil.DEFAULT_BUFFER_SIZE |
byte[] |
digest(InputStream data,
int bufferLength)
生成摘要
|
byte[] |
digest(String data)
生成文件摘要
|
byte[] |
digest(String data,
Charset charset)
生成文件摘要
|
byte[] |
digest(String data,
String charsetName)
生成文件摘要
|
String |
digestHex(byte[] data)
生成摘要,并转为16进制字符串
|
String |
digestHex(File file)
生成文件摘要,并转为16进制字符串
使用默认缓存大小,见 NioUtil.DEFAULT_BUFFER_SIZE |
String |
digestHex(InputStream data)
生成摘要,并转为16进制字符串
使用默认缓存大小,见 NioUtil.DEFAULT_BUFFER_SIZE |
String |
digestHex(InputStream data,
int bufferLength)
生成摘要,并转为16进制字符串
使用默认缓存大小,见 NioUtil.DEFAULT_BUFFER_SIZE |
String |
digestHex(String data)
生成文件摘要
|
String |
digestHex(String data,
Charset charset)
生成文件摘要,并转为16进制字符串
|
String |
digestHex(String data,
String charsetName)
生成文件摘要,并转为16进制字符串
|
MessageDigest |
getDigest()
|
int |
getDigestLength()
获取散列长度,0表示不支持此方法
|
Digester |
init(String algorithm,
Provider provider)
初始化
|
Digester |
reset()
|
Digester |
setDigestCount(int digestCount)
设置重复计算摘要值次数
|
Digester |
setSalt(byte[] salt)
设置加盐内容
|
Digester |
setSaltPosition(int saltPosition)
设置加盐的位置,只有盐值存在时有效
加盐的位置指盐位于数据byte数组中的位置,例如: data: 0123456 则当saltPosition = 2时,盐位于data的1和2中间,即第二个空隙,即: data: 01[salt]23456 |
protected byte[] salt
protected int saltPosition
protected int digestCount
public Digester(DigestAlgorithm algorithm)
algorithm
- 算法枚举public Digester(String algorithm)
algorithm
- 算法枚举public Digester(DigestAlgorithm algorithm, Provider provider)
algorithm
- 算法provider
- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持public Digester(String algorithm, Provider provider)
algorithm
- 算法provider
- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持public Digester(MessageDigest messageDigest)
messageDigest
- MessageDigest
public Digester init(String algorithm, Provider provider)
algorithm
- 算法provider
- 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持CryptoException
- Cause by IOExceptionpublic Digester setSalt(byte[] salt)
salt
- 盐值public Digester setSaltPosition(int saltPosition)
data: 0123456则当saltPosition = 2时,盐位于data的1和2中间,即第二个空隙,即:
data: 01[salt]23456
saltPosition
- 盐的位置public Digester setDigestCount(int digestCount)
digestCount
- 摘要值次数public Digester reset()
public byte[] digest(String data, String charsetName)
data
- 被摘要数据charsetName
- 编码public byte[] digest(String data, Charset charset)
data
- 被摘要数据charset
- 编码public byte[] digest(String data)
data
- 被摘要数据public String digestHex(String data, String charsetName)
data
- 被摘要数据charsetName
- 编码public String digestHex(String data, Charset charset)
data
- 被摘要数据charset
- 编码public byte[] digest(File file) throws CryptoException
NioUtil.DEFAULT_BUFFER_SIZE
file
- 被摘要文件CryptoException
- Cause by IOExceptionpublic String digestHex(File file)
NioUtil.DEFAULT_BUFFER_SIZE
file
- 被摘要文件public byte[] digest(byte[] data)
data
- 数据bytespublic String digestHex(byte[] data)
data
- 被摘要数据public byte[] digest(InputStream data)
NioUtil.DEFAULT_BUFFER_SIZE
data
- InputStream
数据流public String digestHex(InputStream data)
NioUtil.DEFAULT_BUFFER_SIZE
data
- 被摘要数据public byte[] digest(InputStream data, int bufferLength) throws IORuntimeException
data
- InputStream
数据流bufferLength
- 缓存长度,不足1使用 NioUtil.DEFAULT_BUFFER_SIZE
做为默认值IORuntimeException
- IO异常public String digestHex(InputStream data, int bufferLength)
NioUtil.DEFAULT_BUFFER_SIZE
data
- 被摘要数据bufferLength
- 缓存长度,不足1使用 NioUtil.DEFAULT_BUFFER_SIZE
做为默认值public MessageDigest getDigest()
MessageDigest
public int getDigestLength()
Copyright © 2024. All rights reserved.