Package org.redisson.misc
Class HighwayHash
- java.lang.Object
-
- org.redisson.misc.HighwayHash
-
public final class HighwayHash extends Object
HighwayHash algorithm. See HighwayHash on GitHub
-
-
Constructor Summary
Constructors Constructor Description HighwayHash(long[] key)HighwayHash(long key0, long key1, long key2, long key3)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description long[]finalize128()Computes the hash value after all bytes were processed.long[]finalize256()Computes the hash value after all bytes were processed.longfinalize64()Computes the hash value after all bytes were processed.static long[]hash128(byte[] data, int offset, int length, long[] key)NOTE: The 128-bit HighwayHash algorithm is not yet frozen and subject to change.static long[]hash256(byte[] data, int offset, int length, long[] key)NOTE: The 256-bit HighwayHash algorithm is not yet frozen and subject to change.static longhash64(byte[] data, int offset, int length, long[] key)NOTE: The 64-bit HighwayHash algorithm is declared stable and no longer subject to change.voidupdate(long a0, long a1, long a2, long a3)Updates the hash with 32 bytes of data given as 4 longs.voidupdatePacket(byte[] packet, int pos)Updates the hash with 32 bytes of data.voidupdateRemainder(byte[] bytes, int pos, int size_mod32)Updates the hash with the last 1 to 31 bytes of the data.
-
-
-
Constructor Detail
-
HighwayHash
public HighwayHash(long key0, long key1, long key2, long key3)- Parameters:
key0- first 8 bytes of the keykey1- next 8 bytes of the keykey2- next 8 bytes of the keykey3- last 8 bytes of the key
-
HighwayHash
public HighwayHash(long[] key)
- Parameters:
key- array of size 4 with the key to initialize the hash with
-
-
Method Detail
-
updatePacket
public void updatePacket(byte[] packet, int pos)Updates the hash with 32 bytes of data. If you can read 4 long values from your data efficiently, prefer using update() instead for more speed.- Parameters:
packet- data array which has a length of at least pos + 32pos- position in the array to read the first of 32 bytes from
-
update
public void update(long a0, long a1, long a2, long a3)Updates the hash with 32 bytes of data given as 4 longs. This function is more efficient than updatePacket when you can use it.- Parameters:
a0- first 8 bytes in little endian 64-bit longa1- next 8 bytes in little endian 64-bit longa2- next 8 bytes in little endian 64-bit longa3- last 8 bytes in little endian 64-bit long
-
updateRemainder
public void updateRemainder(byte[] bytes, int pos, int size_mod32)Updates the hash with the last 1 to 31 bytes of the data. You must use updatePacket first per 32 bytes of the data, if and only if 1 to 31 bytes of the data are not processed after that, updateRemainder must be used for those final bytes.- Parameters:
bytes- data array which has a length of at least pos + size_mod32pos- position in the array to start reading size_mod32 bytes fromsize_mod32- the amount of bytes to read
-
finalize64
public long finalize64()
Computes the hash value after all bytes were processed. Invalidates the state. NOTE: The 64-bit HighwayHash algorithm is declared stable and no longer subject to change.- Returns:
- 64-bit hash
-
finalize128
public long[] finalize128()
Computes the hash value after all bytes were processed. Invalidates the state. NOTE: The 128-bit HighwayHash algorithm is not yet frozen and subject to change.- Returns:
- array of size 2 containing 128-bit hash
-
finalize256
public long[] finalize256()
Computes the hash value after all bytes were processed. Invalidates the state. NOTE: The 256-bit HighwayHash algorithm is not yet frozen and subject to change.- Returns:
- array of size 4 containing 256-bit hash
-
hash64
public static long hash64(byte[] data, int offset, int length, long[] key)NOTE: The 64-bit HighwayHash algorithm is declared stable and no longer subject to change.- Parameters:
data- array with data bytesoffset- position of first byte of data to read fromlength- number of bytes from data to readkey- array of size 4 with the key to initialize the hash with- Returns:
- 64-bit hash for the given data
-
hash128
public static long[] hash128(byte[] data, int offset, int length, long[] key)NOTE: The 128-bit HighwayHash algorithm is not yet frozen and subject to change.- Parameters:
data- array with data bytesoffset- position of first byte of data to read fromlength- number of bytes from data to readkey- array of size 4 with the key to initialize the hash with- Returns:
- array of size 2 containing 128-bit hash for the given data
-
hash256
public static long[] hash256(byte[] data, int offset, int length, long[] key)NOTE: The 256-bit HighwayHash algorithm is not yet frozen and subject to change.- Parameters:
data- array with data bytesoffset- position of first byte of data to read fromlength- number of bytes from data to readkey- array of size 4 with the key to initialize the hash with- Returns:
- array of size 4 containing 256-bit hash for the given data
-
-