fnv-lite
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/fnv-lite package

1.2.0 • Public • Published

fnv-lite

Build Status

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.

Usage

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

API

FNV.hex(string)

Returns the FNV-1a hash of string as a hex string.

FNV.base36(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.

FNV.base64(string)

Returns the FNV-1a hash of string as a base64-encoded string.

FNV.base64Url(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.

new FNV()

Create a new FNV hash object.

FNV#update(iterable)

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.

FNV#digest(['hex' | 'base36' | 'base64'])

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.

Why not fnv-plus?

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.

License

ISC.

Package Sidebar

Install

npm i fnv-lite

Weekly Downloads

180

Version

1.2.0

License

ISC

Last publish

Collaborators

  • goldibex