Class DigestAbstract
- java.lang.Object
-
- com.gitee.apanlh.util.algorithm.digest.DigestAbstract
-
- All Implemented Interfaces:
Digest,DigestVerify
- Direct Known Subclasses:
BouncyCastleDigestAbstract,HMac,JdkDigestAbstract
public abstract class DigestAbstract extends Object implements Digest, DigestVerify
- Author:
- Pan
- See Also:
JdkDigestAbstract,BouncyCastleDigestAbstract
-
-
Constructor Summary
Constructors Constructor Description DigestAbstract()默认构造函数
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract byte[]digest()完成摘要计算,并重置摘要器(使其可继续用于新的计算)byte[]digest(byte[] content)对字节数组进行摘要计算byte[]digest(File file)计算文件摘要(流式)
将会自动关闭文件流byte[]digest(InputStream inputStream)计算输入流摘要(流式)
注意此方法不会关闭输入流,请在外部自行关闭byte[]digest(InputStream inputStream, int bufferSize)计算输入流摘要(流式)
注意此方法不会关闭输入流,请在外部自行关闭byte[]digest(String content)对字符串进行摘要计算byte[]digestSalt(byte[] content, byte[] salt)对字节数组进行摘要计算,并加盐(盐值前置)byte[]digestSalt(String content, byte[] salt)对字符串进行摘要计算,并加盐(盐值前置)byte[]digestSaltToBase64(byte[] content, byte[] salt)对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回Base64编码后的字节数组 (RFC4648)byte[]digestSaltToBase64(byte[] content, byte[] salt, Base64Type base64Type)对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
自定义 编码类型byte[]digestSaltToBase64(String content, byte[] salt)对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字节数组 (RFC4648)byte[]digestSaltToBase64(String content, byte[] salt, Base64Type base64Type)对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
自定义 编码类型StringdigestSaltToBase64Str(byte[] content, byte[] salt)对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串 (RFC4648)StringdigestSaltToBase64Str(byte[] content, byte[] salt, Base64Type base64Type)对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型StringdigestSaltToBase64Str(String content, byte[] salt)对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串 (RFC4648)StringdigestSaltToBase64Str(String content, byte[] salt, Base64Type base64Type)对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型StringdigestSaltToHex(byte[] content, byte[] salt)对字节数组进行摘要计算,并加盐,以十六进制字符串形式返回(默认小写)StringdigestSaltToHex(byte[] content, byte[] salt, boolean toLowerCase)对字节数组进行摘要计算,并加盐,以十六进制字符串形式返回,可控制大小写StringdigestSaltToHex(String content, byte[] salt)对字符串进行摘要计算,并加盐,以十六进制字符串形式返回(默认小写)StringdigestSaltToHex(String content, byte[] salt, boolean toLowerCase)对字符串进行摘要计算,并加盐,以十六进制字符串形式返回,可控制大小写byte[]digestToBase64(byte[] content)对字节数组进行摘要计算
以Base64编码返回摘要结果(RFC4648)byte[]digestToBase64(byte[] content, Base64Type base64Type)对字节数组进行摘要计算,然后进行 Base64 编码
自定义 编码类型byte[]digestToBase64(String content)对字符串进行摘要计算
以Base64编码返回摘要结果(RFC4648)byte[]digestToBase64(String content, Base64Type base64Type)对字符串进行摘要计算,然后进行 Base64 编码
自定义编码类型StringdigestToBase64Str(byte[] content)对字节数组进行摘要计算
以Base64编码返回摘要结果(RFC4648)StringdigestToBase64Str(byte[] content, Base64Type base64Type)对字节数组进行摘要计算,然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型StringdigestToBase64Str(String content)对字符串进行摘要计算
以Base64编码返回摘要结果(RFC4648)StringdigestToBase64Str(String content, Base64Type base64Type)对字符串进行摘要计算,然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型StringdigestToHex()十六进制StringdigestToHex(byte[] content)对字节数组进行摘要计算
以十六进制字符串形式返回摘要结果
默认小写结果StringdigestToHex(byte[] content, boolean toLowerCase)对字节数组进行摘要计算
以十六进制字符串形式返回摘要结果
自定义对摘要结果大小写StringdigestToHex(String content)对字符串进行摘要计算
以十六进制字符串形式返回摘要结果
默认小写结果StringdigestToHex(String content, boolean toLowerCase)对字符串进行摘要计算
以十六进制字符串形式返回摘要结果
自定义对摘要结果大小写abstract StringgetAlgorithm()获取具体摘要算法字符串abstract intgetDigestLength()获取摘要长度(字节数)abstract DigestTypegetDigestType()获取摘要类型abstract byte[]hash(byte[] content)abstract voidreset()显式重置摘要器,清除已累积的数据
通常在开始新的摘要计算前调用abstract voidsetDigestType(DigestType digestType)设置摘要类型abstract voidupdate(byte[] input)更新摘要计算,输入数据 可多次调用,累积数据abstract voidupdate(byte[] input, int offset, int len)更新摘要计算,输入数据的一部分booleanverify(byte[] plaintextContent, byte[] digestContent)摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比booleanverify(File file, File file2)文件的散列值比较
会将文件中进行散列算法,并进行比较
流式加载booleanverifyBase64(byte[] plaintextContent, byte[] digestContent)摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Base64booleanverifyBase64(byte[] plaintextContent, String base64DigestContent)摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Base64booleanverifyBase64(File file, String base64DigestContent)文件的散列值比较
会将文件中进行散列算法,并对摘要内容进行比较
默认将明文转换Base64
流式加载booleanverifyBase64(String plaintextContent, String base64DigestContent)摘要校验方法(字符串类型)
会将明文内容进行摘要算法后与摘要内容进行对比
将忽略大小写匹配
默认将明文转换Base64booleanverifyHex(byte[] plaintextContent, String hexDigestContent)摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Hex(16进制)booleanverifyHex(File file, String hexDigestContent)文件的散列值比较
会将文件中进行散列算法,并对摘要内容进行比较
默认将明文转换Hex(16进制)
流式加载booleanverifyHex(String plaintextContent, String hexDigestContent)摘要校验方法(字符串类型)
会将明文内容进行摘要算法后与摘要内容进行对比
将忽略大小写匹配
默认将明文转换Hex(16进制)
-
-
-
Method Detail
-
hash
public abstract byte[] hash(byte[] content)
- Parameters:
content- 内容- Returns:
- byte[] 摘要后的内容
-
update
public abstract void update(byte[] input)
更新摘要计算,输入数据 可多次调用,累积数据- Parameters:
input- 输入字节数组
-
update
public abstract void update(byte[] input, int offset, int len)更新摘要计算,输入数据的一部分- Parameters:
input- 输入字节数组offset- 起始偏移len- 长度
-
reset
public abstract void reset()
显式重置摘要器,清除已累积的数据
通常在开始新的摘要计算前调用
-
digest
public abstract byte[] digest()
完成摘要计算,并重置摘要器(使其可继续用于新的计算)- Returns:
- byte[] 最终摘要值
-
digest
public byte[] digest(File file)
计算文件摘要(流式)
将会自动关闭文件流- Parameters:
file- 文件- Returns:
- byte[]
-
digest
public byte[] digest(InputStream inputStream)
计算输入流摘要(流式)
注意此方法不会关闭输入流,请在外部自行关闭- Parameters:
inputStream- 输入流- Returns:
- byte[]
-
digest
public byte[] digest(InputStream inputStream, int bufferSize)
计算输入流摘要(流式)
注意此方法不会关闭输入流,请在外部自行关闭- Parameters:
inputStream- 输入流bufferSize- 自定义缓冲长度- Returns:
- byte[]
-
digestToHex
public String digestToHex()
十六进制此方法适用于流式更新场景:先通过
update(byte[])累积数据,当所有数据更新完成后,调用该方法获得最终的摘要值调用后,摘要器内部状态自动重置,可继续用于新的计算
- Returns:
- String 摘要值的十六进制字符串(小写)
- See Also:
digest(),HexUtils.encode(byte[])
-
digest
public byte[] digest(byte[] content)
Description copied from interface:Digest对字节数组进行摘要计算
-
digestToHex
public String digestToHex(byte[] content)
Description copied from interface:Digest对字节数组进行摘要计算
以十六进制字符串形式返回摘要结果
默认小写结果- Specified by:
digestToHexin interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToHex
public String digestToHex(byte[] content, boolean toLowerCase)
Description copied from interface:Digest对字节数组进行摘要计算
以十六进制字符串形式返回摘要结果
自定义对摘要结果大小写- Specified by:
digestToHexin interfaceDigest- Parameters:
content- 内容toLowerCase- true为小写, false为大写- Returns:
- String 摘要后的结果
-
digestToHex
public String digestToHex(String content)
Description copied from interface:Digest对字符串进行摘要计算
以十六进制字符串形式返回摘要结果
默认小写结果- Specified by:
digestToHexin interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToHex
public String digestToHex(String content, boolean toLowerCase)
Description copied from interface:Digest对字符串进行摘要计算
以十六进制字符串形式返回摘要结果
自定义对摘要结果大小写- Specified by:
digestToHexin interfaceDigest- Parameters:
content- 内容toLowerCase- true为小写, false为大写- Returns:
- String 摘要后的结果
-
digestToBase64
public byte[] digestToBase64(byte[] content)
Description copied from interface:Digest对字节数组进行摘要计算
以Base64编码返回摘要结果(RFC4648)- Specified by:
digestToBase64in interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToBase64
public byte[] digestToBase64(byte[] content, Base64Type base64Type)Description copied from interface:Digest对字节数组进行摘要计算,然后进行 Base64 编码
自定义 编码类型- Specified by:
digestToBase64in interfaceDigest- Parameters:
content- 内容字节数组base64Type- 编码类型- Returns:
- byte[] 编码后的摘要结果(字节数组)
-
digestToBase64
public byte[] digestToBase64(String content)
Description copied from interface:Digest对字符串进行摘要计算
以Base64编码返回摘要结果(RFC4648)- Specified by:
digestToBase64in interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToBase64
public byte[] digestToBase64(String content, Base64Type base64Type)
Description copied from interface:Digest对字符串进行摘要计算,然后进行 Base64 编码
自定义编码类型- Specified by:
digestToBase64in interfaceDigest- Parameters:
content- 内容字符串base64Type- 编码类型- Returns:
- byte[] 编码后的摘要结果(字节数组)
-
digestToBase64Str
public String digestToBase64Str(byte[] content)
Description copied from interface:Digest对字节数组进行摘要计算
以Base64编码返回摘要结果(RFC4648)- Specified by:
digestToBase64Strin interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToBase64Str
public String digestToBase64Str(byte[] content, Base64Type base64Type)
Description copied from interface:Digest对字节数组进行摘要计算,然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型- Specified by:
digestToBase64Strin interfaceDigest- Parameters:
content- 内容字节数组base64Type- 编码类型- Returns:
- String 编码后的摘要结果字符串
-
digestToBase64Str
public String digestToBase64Str(String content)
Description copied from interface:Digest对字符串进行摘要计算
以Base64编码返回摘要结果(RFC4648)- Specified by:
digestToBase64Strin interfaceDigest- Parameters:
content- 内容- Returns:
- String 摘要后的结果
-
digestToBase64Str
public String digestToBase64Str(String content, Base64Type base64Type)
Description copied from interface:Digest对字符串进行摘要计算,然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型- Specified by:
digestToBase64Strin interfaceDigest- Parameters:
content- 内容字符串base64Type- Base64编码类型- Returns:
- String 编码后的摘要结果字符串
-
digestSalt
public byte[] digestSalt(byte[] content, byte[] salt)Description copied from interface:Digest对字节数组进行摘要计算,并加盐(盐值前置)- Specified by:
digestSaltin interfaceDigest- Parameters:
content- 内容salt- 盐值- Returns:
- byte[] 摘要后的结果
-
digestSalt
public byte[] digestSalt(String content, byte[] salt)
Description copied from interface:Digest对字符串进行摘要计算,并加盐(盐值前置)- Specified by:
digestSaltin interfaceDigest- Parameters:
content- 内容salt- 盐值- Returns:
- byte[] 摘要后的结果
-
digestSaltToHex
public String digestSaltToHex(byte[] content, byte[] salt)
Description copied from interface:Digest对字节数组进行摘要计算,并加盐,以十六进制字符串形式返回(默认小写)- Specified by:
digestSaltToHexin interfaceDigest- Parameters:
content- 内容salt- 盐值- Returns:
- String 摘要后的十六进制字符串
-
digestSaltToHex
public String digestSaltToHex(byte[] content, byte[] salt, boolean toLowerCase)
Description copied from interface:Digest对字节数组进行摘要计算,并加盐,以十六进制字符串形式返回,可控制大小写- Specified by:
digestSaltToHexin interfaceDigest- Parameters:
content- 内容salt- 盐值toLowerCase- true为小写,false为大写- Returns:
- String 摘要后的十六进制字符串
-
digestSaltToHex
public String digestSaltToHex(String content, byte[] salt)
Description copied from interface:Digest对字符串进行摘要计算,并加盐,以十六进制字符串形式返回(默认小写)- Specified by:
digestSaltToHexin interfaceDigest- Parameters:
content- 内容salt- 盐值- Returns:
- String 摘要后的十六进制字符串
-
digestSaltToHex
public String digestSaltToHex(String content, byte[] salt, boolean toLowerCase)
Description copied from interface:Digest对字符串进行摘要计算,并加盐,以十六进制字符串形式返回,可控制大小写- Specified by:
digestSaltToHexin interfaceDigest- Parameters:
content- 内容salt- 盐值toLowerCase- true为小写,false为大写- Returns:
- String 摘要后的十六进制字符串
-
digestSaltToBase64
public byte[] digestSaltToBase64(byte[] content, byte[] salt)Description copied from interface:Digest对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回Base64编码后的字节数组 (RFC4648)- Specified by:
digestSaltToBase64in interfaceDigest- Parameters:
content- 内容字节数组salt- 盐值字节数组- Returns:
- byte[] Base64 编码后的摘要结果(字节数组)
-
digestSaltToBase64
public byte[] digestSaltToBase64(byte[] content, byte[] salt, Base64Type base64Type)Description copied from interface:Digest对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
自定义 编码类型- Specified by:
digestSaltToBase64in interfaceDigest- Parameters:
content- 内容字节数组salt- 盐值字节数组base64Type- 编码类型- Returns:
- byte[] 编码后的摘要结果(字节数组)
-
digestSaltToBase64
public byte[] digestSaltToBase64(String content, byte[] salt)
Description copied from interface:Digest对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字节数组 (RFC4648)- Specified by:
digestSaltToBase64in interfaceDigest- Parameters:
content- 内容字符串salt- 盐值字节数组- Returns:
- byte[] 编码后的摘要结果(字节数组)
-
digestSaltToBase64
public byte[] digestSaltToBase64(String content, byte[] salt, Base64Type base64Type)
Description copied from interface:Digest对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
自定义 编码类型- Specified by:
digestSaltToBase64in interfaceDigest- Parameters:
content- 内容字符串salt- 盐值字节数组base64Type- 编码类型- Returns:
- byte[] 编码后的摘要结果(字节数组)
-
digestSaltToBase64Str
public String digestSaltToBase64Str(byte[] content, byte[] salt)
Description copied from interface:Digest对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串 (RFC4648)- Specified by:
digestSaltToBase64Strin interfaceDigest- Parameters:
content- 内容字节数组salt- 盐值字节数组- Returns:
- String 编码后的摘要结果字符串
-
digestSaltToBase64Str
public String digestSaltToBase64Str(byte[] content, byte[] salt, Base64Type base64Type)
Description copied from interface:Digest对字节数组进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型- Specified by:
digestSaltToBase64Strin interfaceDigest- Parameters:
content- 内容字节数组salt- 盐值字节数组base64Type- 编码类型- Returns:
- String 编码后的摘要结果字符串
-
digestSaltToBase64Str
public String digestSaltToBase64Str(String content, byte[] salt)
Description copied from interface:Digest对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串 (RFC4648)- Specified by:
digestSaltToBase64Strin interfaceDigest- Parameters:
content- 内容字符串salt- 盐值字节数组- Returns:
- String 编码后的摘要结果字符串
-
digestSaltToBase64Str
public String digestSaltToBase64Str(String content, byte[] salt, Base64Type base64Type)
Description copied from interface:Digest对字符串进行摘要计算,并加盐(盐值前置),然后进行 Base64 编码
返回 Base64 编码后的字符串
自定义 编码类型- Specified by:
digestSaltToBase64Strin interfaceDigest- Parameters:
content- 内容字符串salt- 盐值字节数组base64Type- 编码类型- Returns:
- String 编码后的摘要结果字符串
-
verify
public boolean verify(byte[] plaintextContent, byte[] digestContent)Description copied from interface:DigestVerify摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比- Specified by:
verifyin interfaceDigestVerify- Parameters:
plaintextContent- 明文内容digestContent- 摘要内容- Returns:
- boolean
-
verify
public boolean verify(File file, File file2)
Description copied from interface:DigestVerify文件的散列值比较
会将文件中进行散列算法,并进行比较
流式加载- Specified by:
verifyin interfaceDigestVerify- Parameters:
file- 文件对象file2- 文件对象2- Returns:
- boolean
-
verifyBase64
public boolean verifyBase64(byte[] plaintextContent, byte[] digestContent)Description copied from interface:DigestVerify摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Base64- Specified by:
verifyBase64in interfaceDigestVerify- Parameters:
plaintextContent- 明文内容digestContent- 摘要内容- Returns:
- boolean
-
verifyBase64
public boolean verifyBase64(byte[] plaintextContent, String base64DigestContent)Description copied from interface:DigestVerify摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Base64- Specified by:
verifyBase64in interfaceDigestVerify- Parameters:
plaintextContent- 明文内容base64DigestContent- 摘要内容- Returns:
- boolean
-
verifyBase64
public boolean verifyBase64(String plaintextContent, String base64DigestContent)
Description copied from interface:DigestVerify摘要校验方法(字符串类型)
会将明文内容进行摘要算法后与摘要内容进行对比
将忽略大小写匹配
默认将明文转换Base64- Specified by:
verifyBase64in interfaceDigestVerify- Parameters:
plaintextContent- 明文内容base64DigestContent- 摘要内容- Returns:
- boolean
-
verifyBase64
public boolean verifyBase64(File file, String base64DigestContent)
Description copied from interface:DigestVerify文件的散列值比较
会将文件中进行散列算法,并对摘要内容进行比较
默认将明文转换Base64
流式加载- Specified by:
verifyBase64in interfaceDigestVerify- Parameters:
file- 文件对象base64DigestContent- 摘要内容- Returns:
- boolean
-
verifyHex
public boolean verifyHex(byte[] plaintextContent, String hexDigestContent)Description copied from interface:DigestVerify摘要校验方法
会将明文内容进行摘要算法后与摘要内容进行对比
默认将明文转换Hex(16进制)- Specified by:
verifyHexin interfaceDigestVerify- Parameters:
plaintextContent- 明文内容hexDigestContent- 摘要内容- Returns:
- boolean
-
verifyHex
public boolean verifyHex(File file, String hexDigestContent)
Description copied from interface:DigestVerify文件的散列值比较
会将文件中进行散列算法,并对摘要内容进行比较
默认将明文转换Hex(16进制)
流式加载- Specified by:
verifyHexin interfaceDigestVerify- Parameters:
file- 文件对象hexDigestContent- 摘要内容- Returns:
- boolean
-
verifyHex
public boolean verifyHex(String plaintextContent, String hexDigestContent)
Description copied from interface:DigestVerify摘要校验方法(字符串类型)
会将明文内容进行摘要算法后与摘要内容进行对比
将忽略大小写匹配
默认将明文转换Hex(16进制)- Specified by:
verifyHexin interfaceDigestVerify- Parameters:
plaintextContent- 明文内容hexDigestContent- 摘要内容- Returns:
- boolean
-
getDigestLength
public abstract int getDigestLength()
获取摘要长度(字节数)- Returns:
- int
-
getAlgorithm
public abstract String getAlgorithm()
获取具体摘要算法字符串- Returns:
- String
-
getDigestType
public abstract DigestType getDigestType()
获取摘要类型- Returns:
- DigestType
-
setDigestType
public abstract void setDigestType(DigestType digestType)
设置摘要类型- Parameters:
digestType- 摘要类型
-
-