String hash algorithms.
npm install bling-hashes






String hash algorithms for node.js.
``shell`
$ 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.
`javascript`
var bling = require("bling-hashes");
And then you can pass any string to functions (the same name as algorithms, in lowercase).
Eg.
`javascript`
var hash1 = bling.bkdr("Hello world!"); ///< 501511565
var hash2 = bling.city32("玉扣"); ///< 887335438
+ From BKDR to ELF, the functions return a Number value;city32
+ returns a Number value too;city64
+ returns a Long value which may refer here;city128
+ returns a City128Value value which has properties below:.toString()
- : The string value of the 128-bit number;.toLongArray()
- : An array that includes two 64-bit Long value;.toBuffers()
- : An array that includes two Buffers..toBigNumber()
- : A BigNumber` value which may refer here;
Thanks to BYVoid. The C++ implementation code was copied from his blog.
You're welcome to make pull requests.
「雖然我覺得不怎麼可能有人會關注我」