A much smaller FNV-1a hash library, friendlier to browsers.
fnv-lite implements the 128-bit variant of Fowler-Noll-Vo version 1a. It emits hashes in hex, base64, and as a raw array of octets.
fnv-lite is a UMD module, so you can use it with require.js, Node, browserify,
or directly in your browser window, in which case it will export window.FNV
.
npm install --save fnv-lite
var FNV = require('fnv-lite');
console.log(FNV.hex('')); // 6c62272e07bb014262b821756295c58d
console.log(FNV.base64('')); // bGInLge7AUJiuCF1YpXFjQ==
console.log(FNV.base64Url('')); // bGInLge7AUJiuCF1YpXFjQ
console.log(FNV.base36('')); // 6ezv16m7wweombnkd3ldlii6l
Returns the FNV-1a hash of string
as a hex string.
Returns the FNV-1a hash of string
as a base36-encoded string.
Base36 is a relic of the Javascript universe, in that it happens
to be the largest number base you can pass to Number#toString()
.
This method is included because it replicates the behavior of the str()
serialization in fnv-plus
.
Returns the FNV-1a hash of string
as a base64-encoded string.
Returns the FNV-1a hash of string
as a URL-safe base64-encoded string,
which is different from a regular base64 string in the following respects:
- "+" becomes "-".
- "/" becomes "_".
- The trailing padding characters (==) are omitted.
Create a new FNV hash object.
Add the contents of the supplied string/byte array to the hash and recompute its value.
Returns the original FNV
object, so you can chain it.
Retrieve the current value of the hash in hexadecimal, base36 (a Javascript relic), or base64. If you don't supply a digest type, fnv-lite will return the current hash value as a "byte" array.
fnv-plus
is an excellent library for server-side operations. Unfortunately it
requires the jsbn
library, which adds quite a lot of girth to browser builds.
ISC.