Class HashKit

java.lang.Object
org.miaixz.bus.core.xyz.HashKit

public class HashKit extends Object
Hash算法大全 推荐使用FNV1算法
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • HashKit

      public HashKit()
  • Method Details

    • additiveHash

      public static int additiveHash(String key, int prime)
      加法hash
      Parameters:
      key - 字符串
      prime - 一个质数
      Returns:
      hash结果
    • rotatingHash

      public static int rotatingHash(String key, int prime)
      旋转hash
      Parameters:
      key - 输入字符串
      prime - 质数
      Returns:
      hash值
    • oneByOneHash

      public static int oneByOneHash(String key)
      一次一个hash
      Parameters:
      key - 输入字符串
      Returns:
      输出hash值
    • bernstein

      public static int bernstein(String key)
      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

      public static int fnvHash(String data)
      改进的32位FNV算法1
      Parameters:
      data - 字符串
      Returns:
      hash结果
    • intHash

      public static int intHash(int key)
      Thomas Wang的算法,整数hash
      Parameters:
      key - 整数
      Returns:
      hash值
    • rsHash

      public static int rsHash(String text)
      RS算法hash
      Parameters:
      text - 字符串
      Returns:
      hash值
    • jsHash

      public static int jsHash(String text)
      JS算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • pjwHash

      public static int pjwHash(String text)
      PJW算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • elfHash

      public static int elfHash(String text)
      ELF算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • bkdrHash

      public static int bkdrHash(String text)
      BKDR算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • sdbmHash

      public static int sdbmHash(String text)
      SDBM算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • djbHash

      public static int djbHash(String text)
      DJB算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • dekHash

      public static int dekHash(String text)
      DEK算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • apHash

      public static int apHash(String text)
      AP算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • tianlHash

      public static long tianlHash(String text)
      TianL Hash算法
      Parameters:
      text - 字符串
      Returns:
      Hash值
    • javaDefaultHash

      public static int javaDefaultHash(String text)
      JAVA自己带的算法
      Parameters:
      text - 字符串
      Returns:
      hash值
    • mixHash

      public static long mixHash(String text)
      混合hash算法,输出64位的值
      Parameters:
      text - 字符串
      Returns:
      hash值
    • identityHashCode

      public static int identityHashCode(Object obj)
      根据对象的内存地址生成相应的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

      public static No128 murmur128(byte[] data)
      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 - 种子1
      seed1 - 种子2
      Returns:
      hash值
    • cityHash64

      public static long cityHash64(byte[] data)
      CityHash算法64-bit实现
      Parameters:
      data - 数据
      Returns:
      hash值
    • cityHash128

      public static No128 cityHash128(byte[] data)
      CityHash算法128-bit实现
      Parameters:
      data - 数据
      Returns:
      hash值
    • cityHash128

      public static No128 cityHash128(byte[] data, No128 seed)
      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

      public static No128 metroHash128(byte[] data, long seed)
      MetroHash 算法128-bit实现
      Parameters:
      data - 数据
      seed - 种子
      Returns:
      hash值
    • hfHash

      public static long hfHash(String data)
      HF Hash算法
      Parameters:
      data - 字符串
      Returns:
      hash结果
    • hfIpHash

      public static long hfIpHash(String data)
      HFIP Hash算法
      Parameters:
      data - 字符串
      Returns:
      hash结果