package xyz.anduo.crawler.hash;
/**
* hash算法实现类
*
* @author anduo
*
*/
public class HashFunctionImpl implements HashFunction {
/**
* MurMurHash算法,是非加密HASH算法,性能很高,碰撞率低
*/
public Long hash(String key) {
return MurmurHash.hash64(key);
// ByteBuffer buf = ByteBuffer.wrap(key.toString().getBytes());
// int seed = 0x1234ABCD;
//
// ByteOrder byteOrder = buf.order();
// buf.order(ByteOrder.LITTLE_ENDIAN);
//
// long m = 0xc6a4a7935bd1e995L;
// int r = 47;
//
// long h = seed ^ (buf.remaining() * m);
//
// long k;
// while (buf.remaining() >= 8) {
// k = buf.getLong();
//
// k *= m;
// k ^= k >>> r;
// k *= m;
//
// h ^= k;
// h *= m;
// }
//
// if (buf.remaining() > 0) {
// ByteBuffer finish = ByteBuffer.allocate(8).order(ByteOrder.LITTLE_ENDIAN);
// finish.put(buf).rewind();
// h ^= finish.getLong();
// h *= m;
// }
//
// h ^= h >>> r;
// h *= m;
// h ^= h >>> r;
//
// buf.order(byteOrder);
// return h;
}
}