String hash algorithms for node.js.
$ npm install --save bling-hashes
There are 8 algorithms so far.
- BKDRHash
- APHash
- DJBHash
- JSHash
- RSHash
- SDBMHash
- PJWHash
- ELFHash
- CityHash
- CityHash32: returns a 32-bit hash.
- CityHash64: and similar return a 64-bit hash.
- CityHash128: and similar return a 128-bit hash.
The benchmark, performance and implementation can be referenced here (各种字符串Hash函数比较).
First you should require this package.
var bling = require("bling-hashes");
And then you can pass any string to functions (the same name as algorithms, in lowercase).
Eg.
var hash1 = bling.bkdr("Hello world!"); ///< 501511565
var hash2 = bling.city32("玉扣"); ///< 887335438
- From
BKDR
toELF
, the functions return aNumber
value; city32
returns aNumber
value too;city64
returns aLong
value which may refer here;city128
returns aCity128Value
value which has properties below:.toString()
: The string value of the 128-bit number;.toLongArray()
: An array that includes two 64-bitLong
value;.toBuffers()
: An array that includes twoBuffer
s..toBigNumber()
: ABigNumber
value which may refer here;
Thanks to BYVoid. The C++ implementation code was copied from his blog.
You're welcome to make pull requests.
「雖然我覺得不怎麼可能有人會關注我」