常见hash算法
目前支持hash算法:
- murmurhash3
- HMAC SHA1
- HMAC SHA256
- HMAC SHA512
- SipHash24
HashUtil旨在提供两种hash结果:
- int、long类型(及32bit、64bit)的hash code
- base64编码的hash字符串
HashUtil工具包
public final class HashUtil {
private static Map<HashAlgorithm, HashFunction> hashFunctionStrategy;
private static Key hmacSha1Key;
private static Key hmacSha256Key;
private static Key hmacSha512Key;
private static Key hmacMd5Key;
private static Base64.Encoder encoder = Base64.getEncoder();
private HashUtil() {
}
public static long hmacMd5(@Nonnull Object arg) {
HashCode hashCode = getHashCode(arg.toString(), HashAlgorithm.HMAC_MD5);
return hashCode.bits() <= 32 ? hashCode.asInt() : hashCode.asLong();
}
public static String hmacMd5AsBae64(@Nonnull Object arg) {
HashCode hashCode = getHashCode(arg.toString(), HashAlgorithm.HMAC_MD5);
return encoder.encodeToString(hashCode.asBytes());
}
public static long murmurhash3(@Nonnull Object arg) {
HashCode hashCode