Package org.miaixz.bus.core.xyz
Class HashKit
java.lang.Object
org.miaixz.bus.core.xyz.HashKit
Hash算法大全 推荐使用FNV1算法
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic intadditiveHash(String key, int prime) 加法hashstatic intAP算法static intBernstein's hashstatic intBKDR算法static No128cityHash128(byte[] data) CityHash算法128-bit实现static No128cityHash128(byte[] data, No128 seed) CityHash算法128-bit实现static intcityHash32(byte[] data) CityHash算法32-bit实现static longcityHash64(byte[] data) CityHash算法64-bit实现static longcityHash64(byte[] data, long seed) CityHash算法64-bit实现,种子1使用默认的CityHash#k2static longcityHash64(byte[] data, long seed0, long seed1) CityHash算法64-bit实现,种子1使用默认的CityHash#k2static intDEK算法static intDJB算法static intELF算法static intfnvHash(byte[] data) 改进的32位FNV算法1static int改进的32位FNV算法1static longHF Hash算法static longHFIP Hash算法static intidentityHashCode(Object obj) 根据对象的内存地址生成相应的Hash值static intintHash(int key) Thomas Wang的算法,整数hashstatic intjavaDefaultHash(String text) JAVA自己带的算法static intJS算法static No128metroHash128(byte[] data, long seed) MetroHash 算法128-bit实现static longmetroHash64(byte[] data, long seed) MetroHash 算法64-bit实现static long混合hash算法,输出64位的值static No128murmur128(byte[] data) MurmurHash算法128-bit实现static intmurmur32(byte[] data) MurmurHash算法32-bit实现static longmurmur64(byte[] data) MurmurHash算法64-bit实现static intoneByOneHash(String key) 一次一个hashstatic intPJW算法static introtatingHash(String key, int prime) 旋转hashstatic intRS算法hashstatic intSDBM算法static longTianL Hash算法static intuniversal(char[] key, int mask, int[] tab) Universal Hashingstatic intzobrist(char[] key, int mask, int[][] tab) Zobrist Hashing
-
Constructor Details
-
HashKit
public HashKit()
-
-
Method Details
-
additiveHash
加法hash- Parameters:
key- 字符串prime- 一个质数- Returns:
- hash结果
-
rotatingHash
旋转hash- Parameters:
key- 输入字符串prime- 质数- Returns:
- hash值
-
oneByOneHash
一次一个hash- Parameters:
key- 输入字符串- Returns:
- 输出hash值
-
bernstein
Bernstein's hash- Parameters:
key- 输入字节数组- Returns:
- 结果hash
-
universal
public static int universal(char[] key, int mask, int[] tab) Universal Hashing- Parameters:
key- 字节数组mask- 掩码tab- tab- Returns:
- hash值
-
zobrist
public static int zobrist(char[] key, int mask, int[][] tab) Zobrist Hashing- Parameters:
key- 字节数组mask- 掩码tab- tab- Returns:
- hash值
-
fnvHash
public static int fnvHash(byte[] data) 改进的32位FNV算法1- Parameters:
data- 数组- Returns:
- hash结果
-
fnvHash
改进的32位FNV算法1- Parameters:
data- 字符串- Returns:
- hash结果
-
intHash
public static int intHash(int key) Thomas Wang的算法,整数hash- Parameters:
key- 整数- Returns:
- hash值
-
rsHash
RS算法hash- Parameters:
text- 字符串- Returns:
- hash值
-
jsHash
JS算法- Parameters:
text- 字符串- Returns:
- hash值
-
pjwHash
PJW算法- Parameters:
text- 字符串- Returns:
- hash值
-
elfHash
ELF算法- Parameters:
text- 字符串- Returns:
- hash值
-
bkdrHash
BKDR算法- Parameters:
text- 字符串- Returns:
- hash值
-
sdbmHash
SDBM算法- Parameters:
text- 字符串- Returns:
- hash值
-
djbHash
DJB算法- Parameters:
text- 字符串- Returns:
- hash值
-
dekHash
DEK算法- Parameters:
text- 字符串- Returns:
- hash值
-
apHash
AP算法- Parameters:
text- 字符串- Returns:
- hash值
-
tianlHash
TianL Hash算法- Parameters:
text- 字符串- Returns:
- Hash值
-
javaDefaultHash
JAVA自己带的算法- Parameters:
text- 字符串- Returns:
- hash值
-
mixHash
混合hash算法,输出64位的值- Parameters:
text- 字符串- Returns:
- hash值
-
identityHashCode
根据对象的内存地址生成相应的Hash值- Parameters:
obj- 对象- Returns:
- hash值
-
murmur32
public static int murmur32(byte[] data) MurmurHash算法32-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
murmur64
public static long murmur64(byte[] data) MurmurHash算法64-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
murmur128
MurmurHash算法128-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
cityHash32
public static int cityHash32(byte[] data) CityHash算法32-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
cityHash64
public static long cityHash64(byte[] data, long seed) CityHash算法64-bit实现,种子1使用默认的CityHash#k2- Parameters:
data- 数据seed- 种子2- Returns:
- hash值
-
cityHash64
public static long cityHash64(byte[] data, long seed0, long seed1) CityHash算法64-bit实现,种子1使用默认的CityHash#k2- Parameters:
data- 数据seed0- 种子1seed1- 种子2- Returns:
- hash值
-
cityHash64
public static long cityHash64(byte[] data) CityHash算法64-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
cityHash128
CityHash算法128-bit实现- Parameters:
data- 数据- Returns:
- hash值
-
cityHash128
CityHash算法128-bit实现- Parameters:
data- 数据seed- 种子- Returns:
- hash值
-
metroHash64
public static long metroHash64(byte[] data, long seed) MetroHash 算法64-bit实现- Parameters:
data- 数据seed- 种子- Returns:
- hash值
-
metroHash128
MetroHash 算法128-bit实现- Parameters:
data- 数据seed- 种子- Returns:
- hash值
-
hfHash
HF Hash算法- Parameters:
data- 字符串- Returns:
- hash结果
-
hfIpHash
HFIP Hash算法- Parameters:
data- 字符串- Returns:
- hash结果
-