add methods

This commit is contained in:
Looly 2022-05-05 14:01:09 +08:00
parent fc51570e03
commit 81ef04875b
2 changed files with 107 additions and 0 deletions

View File

@ -14,6 +14,7 @@
* 【core 】 BeanUtil增加beanToMap重载pr#2292@Github
* 【core 】 Assert增加对应的equals及notEquals方法pr#612@Gitee
* 【core 】 Assert增加对应的equals及notEquals方法pr#612@Gitee
* 【core 】 DigestUtil增加sha512方法issue#2298@Github
### 🐞Bug修复
* 【db 】 修复RedisDS无法设置maxWaitMillis问题issue#I54TZ9@Gitee

View File

@ -487,4 +487,110 @@ public class DigestUtil {
public static boolean bcryptCheck(String password, String hashed) {
return BCrypt.checkpw(password, hashed);
}
// ------------------------------------------------------------------------------------------- SHA-512
/**
* 计算SHA-512摘要值
*
* @param data 被摘要数据
* @return SHA-512摘要
*/
public static byte[] sha512(final byte[] data) {
return new Digester(DigestAlgorithm.SHA512).digest(data);
}
/**
* 计算SHA-512摘要值
*
* @param data 被摘要数据
* @param charset 编码
* @return SHA-512摘要
* @since 3.0.8
*/
public static byte[] sha512(final String data, final String charset) {
return new Digester(DigestAlgorithm.SHA512).digest(data, charset);
}
/**
* 计算sha512摘要值使用UTF-8编码
*
* @param data 被摘要数据
* @return MD5摘要
*/
public static byte[] sha512(final String data) {
return sha512(data, CharsetUtil.UTF_8);
}
/**
* 计算SHA-512摘要值
*
* @param data 被摘要数据
* @return SHA-512摘要
*/
public static byte[] sha512(final InputStream data) {
return new Digester(DigestAlgorithm.SHA512).digest(data);
}
/**
* 计算SHA-512摘要值
*
* @param file 被摘要文件
* @return SHA-512摘要
*/
public static byte[] sha512(final File file) {
return new Digester(DigestAlgorithm.SHA512).digest(file);
}
/**
* 计算SHA-1摘要值并转为16进制字符串
*
* @param data 被摘要数据
* @return SHA-512摘要的16进制表示
*/
public static String sha512Hex(final byte[] data) {
return new Digester(DigestAlgorithm.SHA512).digestHex(data);
}
/**
* 计算SHA-512摘要值并转为16进制字符串
*
* @param data 被摘要数据
* @param charset 编码
* @return SHA-512摘要的16进制表示
*/
public static String sha512Hex(final String data, final String charset) {
return new Digester(DigestAlgorithm.SHA512).digestHex(data, charset);
}
/**
* 计算SHA-512摘要值并转为16进制字符串
*
* @param data 被摘要数据
* @return SHA-512摘要的16进制表示
*/
public static String sha512Hex(final String data) {
return sha512Hex(data, CharsetUtil.UTF_8);
}
/**
* 计算SHA-512摘要值并转为16进制字符串
*
* @param data 被摘要数据
* @return SHA-512摘要的16进制表示
*/
public static String sha512Hex(final InputStream data) {
return new Digester(DigestAlgorithm.SHA512).digestHex(data);
}
/**
* 计算SHA-512摘要值并转为16进制字符串
*
* @param file 被摘要文件
* @return SHA-512摘要的16进制表示
*/
public static String sha512Hex(final File file) {
return new Digester(DigestAlgorithm.SHA512).digestHex(file);
}
}